ListView实现单选CHOICE_MODE_SINGLE

以前设置Listview为单选都是在数据中设置一个checked字段, 或者找一个position的全局变量来实现, 如果只是为了UI展示就要添加一个字段就比较麻烦了, 其实谷歌提供了一个api接口来实现 单选多选功能:

Step 1

mShopdetail_category.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); //设置选中模式为单选


Step 2

在Adapter中:


@Override
        public void onGetView(View convertView, final int position) {
            MenuGroup menuGroup = mDataList.get(position);
            TextView shopdetail_item_name = findViewById(convertView,
                    R.id.shopdetail_item_name);
            shopdetail_item_name.setText(menuGroup.getGroup_name());
            shopdetail_item_name.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    mShopdetail_category.setItemChecked(position, true);//设置哪个item被选中!
                    int groupid = mDataList.get(position).getGroup_id();
                    getMenuListData(groupid);
                }

            });
            if (mShopdetail_category.isItemChecked(position)) {//判断是不是选中的那个item!
                shopdetail_item_name.setBackgroundColor(0xFF00C6AF);
                shopdetail_item_name.setTextColor(Color.WHITE);
            } else {
                shopdetail_item_name.setBackgroundColor(Color.WHITE);
                shopdetail_item_name.setTextColor(0xFF555555);
            }

        }

想实现多选, 处理方法也是类似的

CHOICE_MODE_MULTIPLE

转载于:https://my.oschina.net/sfshine/blog/596375

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值