ContentAdapter.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.rdiot.yx485.adapter;
  2. import android.annotation.SuppressLint;
  3. import android.content.Context;
  4. import android.graphics.Color;
  5. import android.text.TextUtils;
  6. import android.view.LayoutInflater;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.TextView;
  10. import androidx.annotation.NonNull;
  11. import androidx.core.content.ContextCompat;
  12. import androidx.recyclerview.widget.RecyclerView;
  13. import com.rdiot.yx485.R;
  14. import com.rdiot.yx485.bean.DeviceTreeBean;
  15. import java.util.List;
  16. public class ContentAdapter extends RecyclerView.Adapter<ContentAdapter.ViewHolder> {
  17. private List<DeviceTreeBean.DataBean> mData;
  18. private OnItemClickListener listener;
  19. private Context mContext;
  20. private int mSelectedIndex = 0;
  21. public ContentAdapter(List<DeviceTreeBean.DataBean> data, OnItemClickListener listener) {
  22. this.mData = data;
  23. this.listener = listener;
  24. }
  25. @SuppressLint("NotifyDataSetChanged")
  26. public void setSelected(int position) {
  27. if (mData != null && mData.size() > position) {
  28. mSelectedIndex = position;
  29. }
  30. notifyDataSetChanged();
  31. }
  32. @NonNull
  33. @Override
  34. public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  35. mContext = parent.getContext();
  36. View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.device_add_list_content, parent, false);
  37. return new ViewHolder(view);
  38. }
  39. @Override
  40. public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
  41. if (mData != null && !TextUtils.isEmpty(mData.get(position).name)) {
  42. if (position == mSelectedIndex) {
  43. holder.title.setVisibility(View.VISIBLE);
  44. holder.itemView.setBackgroundColor(ContextCompat.getColor(mContext, R.color.white));
  45. holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.title_333333));
  46. } else {
  47. holder.title.setVisibility(View.GONE);
  48. holder.itemView.setBackgroundColor(Color.parseColor("#F9F9F9"));
  49. holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.title_999999));
  50. }
  51. holder.text.setText(mData.get(position).name);
  52. holder.itemView.setOnClickListener(v -> {
  53. if (listener != null) {
  54. listener.onItemClick(position);
  55. }
  56. });
  57. }
  58. }
  59. @Override
  60. public int getItemCount() {
  61. if (mData == null) {
  62. return 0;
  63. }
  64. return mData.size();
  65. }
  66. public interface OnItemClickListener {
  67. void onItemClick(int position);
  68. }
  69. static class ViewHolder extends RecyclerView.ViewHolder {
  70. TextView text;
  71. TextView title;
  72. ViewHolder(View itemView) {
  73. super(itemView);
  74. text = itemView.findViewById(R.id.text);
  75. title = itemView.findViewById(R.id.title);
  76. }
  77. }
  78. }