ListView实现单选CHOICE_MODE_SINGLE

偶尔善良 提交于 2019-12-10 14:05:21

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!