2019独角兽企业重金招聘Python工程师标准>>>
以前设置Listview为单选都是在数据中设置一个checked字段, 或者找一个position的全局变量来实现, 如果只是为了UI展示就要添加一个字段就比较麻烦了, 其实谷歌提供了一个api接口来实现 单选多选功能:
Step 1
mShopdetail_category.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); //设置选中模式为单选
在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