package soexample.umeng.com.xuzaizahuopu.presenter;
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.xuzaizahuopu.R;
import soexample.umeng.com.xuzaizahuopu.adapter.MyRecyclerLeftAdapter;
import soexample.umeng.com.xuzaizahuopu.adapter.MyRecyclerRightAdapter;
import soexample.umeng.com.xuzaizahuopu.listener.HttpListener;
import soexample.umeng.com.xuzaizahuopu.model.ChildBean;
import soexample.umeng.com.xuzaizahuopu.model.JiuBean;
import soexample.umeng.com.xuzaizahuopu.net.OkHttp;
import soexample.umeng.com.xuzaizahuopu.view.AppDelegate;
public class ListFragmentPresenter extends AppDelegate {
private Context context;
private RecyclerView list_recycler_view_left;
private RecyclerView list_recycler_view_right;
private String url = "http://www.zhaoapi.cn/product/getCatagory";
private String curl = "http://www.zhaoapi.cn/product/getProductCatagory";
private MyRecyclerLeftAdapter adapter;
private List<JiuBean.DataBean> dataBeanList = new ArrayList<>();
private JiuBean jiuBean;
private MyRecyclerRightAdapter childadapter;
@Override
protected int getLayoutId() {
return R.layout.list_layout;
}
@Override
public void initData() {
super.initData();
//创建管理器
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context);
LinearLayoutManager linearLayoutManagerright = new LinearLayoutManager(context);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
//设置左边管理器
list_recycler_view_left = get(R.id.list_recycler_view_left);
list_recycler_view_left.setLayoutManager(linearLayoutManager);
//设置右边管理器
list_recycler_view_right = get(R.id.list_recycler_view_right);
list_recycler_view_right.setLayoutManager(linearLayoutManagerright);
doHttpLeft();
//创建adapter
adapter = new MyRecyclerLeftAdapter(dataBeanList,context);
list_recycler_view_left.setAdapter(adapter);
//接口回调点击事件
adapter.setItemClick(new MyRecyclerLeftAdapter.onItemClick() {
int cid;
@Override
public void onItem(int positon) {
cid = dataBeanList.get(positon).getCid();
Toast.makeText(context,cid+"",Toast.LENGTH_SHORT).show();
doHttpRight(cid);
}
});
//创建adapter
childadapter = new MyRecyclerRightAdapter(context);
list_recycler_view_right.setAdapter(childadapter);
}
private void doHttpRight(int cid) {
new OkHttp().get(curl+"?cid="+cid).setListener(new HttpListener() {
@Override
public void onSuccess(String data) {
Gson gson = new Gson();
ChildBean childBean = gson.fromJson(data, ChildBean.class);
List<ChildBean.DataBean> beanData = childBean.getData();
childadapter.setList(beanData);
}
@Override
public void oonFailure(String data) {
}
});
}
//右边
private void doHttpLeft() {
new OkHttp().get(url).setListener(new HttpListener() {
@Override
public void onSuccess(String data) {
Gson gson = new Gson();
jiuBean = gson.fromJson(data, JiuBean.class);
dataBeanList.addAll(jiuBean.getData());
adapter.notifyDataSetChanged();
doHttpRight(dataBeanList.get(0).getCid());
}
@Override
public void oonFailure(String data) {
}
});
}
@Override
public void getContext(Context context) {
this.context = context;
}
}
package soexample.umeng.com.xuzaizahuopu.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.List;
import soexample.umeng.com.xuzaizahuopu.R;
import soexample.umeng.com.xuzaizahuopu.model.ChildBean;
import soexample.umeng.com.xuzaizahuopu.model.JiuBean;
public class MyRecyclerLeftAdapter extends RecyclerView.Adapter<MyRecyclerLeftAdapter.MyViewHodler> {
private List<JiuBean.DataBean> list;
private Context context;
public MyRecyclerLeftAdapter(List<JiuBean.DataBean> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public MyViewHodler onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.recycler_left_item_layout, null);
MyViewHodler hodler = new MyViewHodler(view);
hodler.textView = view.findViewById(R.id.left_text);
hodler.relativeLayout = view.findViewById(R.id.left_relative);
return hodler;
}
@Override
public void onBindViewHolder(@NonNull MyViewHodler holder, final int position) {
holder.textView.setText(list.get(position).getName());
holder.relativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
itemClick.onItem(position);
}
});
}
@Override
public int getItemCount() {
return list.size();
}
public class MyViewHodler extends RecyclerView.ViewHolder {
TextView textView;
RelativeLayout relativeLayout;
public MyViewHodler(View itemView) {
super(itemView);
}
}
private onItemClick itemClick;
public void setItemClick(onItemClick itemClick) {
this.itemClick = itemClick;
}
public interface onItemClick{
void onItem(int positon);
}
}
package soexample.umeng.com.xuzaizahuopu.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import soexample.umeng.com.xuzaizahuopu.R;
import soexample.umeng.com.xuzaizahuopu.model.ChildBean;
public class MyRecyclerRightAdapter extends RecyclerView.Adapter<MyRecyclerRightAdapter.MyViewHolder> {
private List<ChildBean.DataBean> list = new ArrayList<>();
private Context context;
public MyRecyclerRightAdapter(Context context) {
this.context = context;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.recycler_right_item_layout, null);
MyViewHolder holder = new MyViewHolder(view);
holder.textView = view.findViewById(R.id.right_text);
holder.recyclerView = view.findViewById(R.id.right_recyclerView);
return holder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(list.get(position).getName());
createRecyclerView(holder.recyclerView,list.get(position).getList());
}
private void createRecyclerView(RecyclerView recyclerView, List<ChildBean.DataBean.ListBean> list) {
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(staggeredGridLayoutManager);
MyChildAdapter adapter = new MyChildAdapter(list,context);
recyclerView.setAdapter(adapter);
}
@Override
public int getItemCount() {
return list.size();
}
public void setList(List<ChildBean.DataBean> list) {
this.list = list;
notifyDataSetChanged();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView textView;
RecyclerView recyclerView;
public MyViewHolder(View itemView) {
super(itemView);
}
}
}