recyclerView = view.findViewById(R.id.classify_recycleview); Gson gson = new Gson(); ClassifyLeftBean fromJson = gson.fromJson(json, ClassifyLeftBean.class); final List<ClassifyLeftBean.DataBean> data = fromJson.getData(); final MyRecycleViewAdapter recycleViewAdapter = new MyRecycleViewAdapter(data); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setAdapter(recycleViewAdapter); ClassifyLeftBean.DataBean dataBean = data.get(0); FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction beginTransaction = fragmentManager.beginTransaction(); ClassifyRightFragment rightFragment = new ClassifyRightFragment(); beginTransaction.replace(R.id.classify_framelayout, rightFragment); Bundle bundle = new Bundle(); int cid = dataBean.getCid(); bundle.putInt("cid", cid); rightFragment.setArguments(bundle); beginTransaction.commit(); recycleViewAdapter.setSetOnItemClickListener(new MyRecycleViewAdapter.setOnItemClickListener() { @Override public void setOnItemclick(int position) { //点击改变字体颜色背景颜色 recycleViewAdapter.setThisPosition(position); recycleViewAdapter.notifyDataSetChanged(); ClassifyLeftBean.DataBean dataBean = data.get(position); FragmentManager fragmentManager = getActivity().getSupportFragmentManager(); FragmentTransaction beginTransaction = fragmentManager.beginTransaction(); ClassifyRightFragment rightFragment = new ClassifyRightFragment(); beginTransaction.replace(R.id.classify_framelayout, rightFragment); Bundle bundle = new Bundle(); int cid = dataBean.getCid(); bundle.putInt("cid", cid); rightFragment.setArguments(bundle); beginTransaction.commit(); } });
public class MyRecycleViewAdapter extends RecyclerView.Adapter<MyRecycleViewAdapter.MyViewHolder> { private List<ClassifyLeftBean.DataBean> data; public MyRecycleViewAdapter(List<ClassifyLeftBean.DataBean> data) { this.data = data; } //先声明一个int成员变量 private int thisPosition; //再定义一个int类型的返回值方法 public int getthisPosition() { return thisPosition; } public void setThisPosition(int thisPosition) { this.thisPosition = thisPosition; } @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.classify_left_item, parent, false); MyViewHolder myViewHolder = new MyViewHolder(inflate); return myViewHolder; } @Override public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) { holder.title.setText(data.get(position).getName()); holder.title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (setOnItemClickListener != null) { setOnItemClickListener.setOnItemclick(position); } } }); if (position == getthisPosition()) { holder.title.setBackgroundColor(Color.RED); holder.title.setTextColor(Color.WHITE); } else { holder.title.setBackgroundColor(Color.WHITE); holder.title.setTextColor(Color.BLACK); } } @Override public int getItemCount() { return data == null ? 0 : data.size(); } public class MyViewHolder extends RecyclerView.ViewHolder { private final TextView title; public MyViewHolder(View itemView) { super(itemView); title = itemView.findViewById(R.id.classify_left_text_tv); } } public void setSetOnItemClickListener(MyRecycleViewAdapter.setOnItemClickListener setOnItemClickListener) { this.setOnItemClickListener = setOnItemClickListener; } private setOnItemClickListener setOnItemClickListener; public interface setOnItemClickListener { void setOnItemclick(int position); } }
recyclerView = view.findViewById(R.id.classify_right_recycle); textView = view.findViewById(R.id.classify_gps); Bundle bundle = getArguments(); id = bundle.getInt("cid"); Gson gson = new Gson(); ClassifyRight classifyRight = gson.fromJson(json, ClassifyRight.class); List<ClassifyRight.DataBean> data = classifyRight.getData(); MyRightRecycleAdapter myRightRecycleAdapter = new MyRightRecycleAdapter(data, getContext()); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManager); recyclerView.setAdapter(myRightRecycleAdapter);
public class MyRightRecycleAdapter extends RecyclerView.Adapter<MyRightRecycleAdapter.MyViewHolder1> { private List<ClassifyRight.DataBean> list; private Context context; public MyRightRecycleAdapter(List<ClassifyRight.DataBean> list, Context context) { this.list = list; this.context = context; } @NonNull @Override public MyViewHolder1 onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.classify_title_item, parent, false); MyViewHolder1 myViewHolder1 = new MyViewHolder1(inflate); return myViewHolder1; } @Override public void onBindViewHolder(@NonNull MyViewHolder1 holder, int position) { holder.title.setText(list.get(position).getName()); List<ClassifyRight.DataBean.ListBean> list = this.list.get(position).getList(); MyRightRecycleChildAdapter rightRecycleChildAdapter = new MyRightRecycleChildAdapter(list); GridLayoutManager gridLayoutManager = new GridLayoutManager(context, 3); gridLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); holder.recyclerView.setLayoutManager(gridLayoutManager); holder.recyclerView.setAdapter(rightRecycleChildAdapter); } @Override public int getItemCount() { return list == null ? 0 : list.size(); } public class MyViewHolder1 extends RecyclerView.ViewHolder { private final TextView title; private final RecyclerView recyclerView; public MyViewHolder1(View itemView) { super(itemView); title = itemView.findViewById(R.id.classify_group_title); recyclerView = itemView.findViewById(R.id.classidy_child_recycle); } }
public class MyRightRecycleChildAdapter extends RecyclerView.Adapter<MyRightRecycleChildAdapter.MyViewHolder2> { private List<ClassifyRight.DataBean.ListBean> list; public MyRightRecycleChildAdapter(List<ClassifyRight.DataBean.ListBean> list) { this.list = list; } @NonNull @Override public MyViewHolder2 onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View inflate = LayoutInflater.from(parent.getContext()).inflate(R.layout.classify_title_child_item, parent, false); MyViewHolder2 myViewHolder2 = new MyViewHolder2(inflate); return myViewHolder2; } @Override public void onBindViewHolder(@NonNull MyViewHolder2 holder, int position) { holder.name.setText(list.get(position).getName()); String icon = list.get(position).getIcon(); ImageLoader.getInstance().displayImage(icon, holder.pic, MyApp.getOptions()); } @Override public int getItemCount() { return list == null ? 0 : list.size(); } public class MyViewHolder2 extends RecyclerView.ViewHolder { private final ImageView pic; private final TextView name; public MyViewHolder2(View itemView) { super(itemView); pic = itemView.findViewById(R.id.classify_title_child_pic); name = itemView.findViewById(R.id.classify_title_child_name); } } }