Android 列表实现单选

2019-10-16  本文已影响0人  你的头上有犄角

1. 先看一下效果图

01.jpg

2. 主要实现思路

2.1. 适配器定义全局变量(点击的下标)
private int selectNum = -1;
2.2. 点击事件得到条目的position
holder.llItem.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @Override
            public void onClick(View view) {
               if (listener != null) {
                    listener.onItemClickListener(position);
                }
                //点击进行重新赋值
                selectNum = position;
                //刷新适配器
                notifyDataSetChanged();
            }
        });
2.3. 对全局定义的变量进行重新赋值 之后刷新适配器

3. 代码部分

 @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
        holder.mTvTese.setText("测试数据" + mTestBeans.get(position).getId());
        if (position == selectNum) {
            holder.mTvTese.setTextColor(context.getResources().getColor(R.color.colorTest));
            holder.mIvTest.setImageDrawable(context.getDrawable(R.drawable.image_select));
        } else {
            holder.mTvTese.setTextColor(context.getResources().getColor(R.color.color8888));
            holder.mIvTest.setImageDrawable(context.getDrawable(R.drawable.image_noselect));
        }

        holder.llItem.setOnClickListener(new View.OnClickListener() {
            @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
            @Override
            public void onClick(View view) {
               if (listener != null) {
                    listener.onItemClickListener(position);
                }
                selectNum = position;
                notifyDataSetChanged();
            }
        });
    }
上一篇 下一篇

猜你喜欢

热点阅读