ListView实现单选CHOICE_MODE_SINGLE

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

以前设置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

你可能感兴趣的:(ListView实现单选CHOICE_MODE_SINGLE)