ListView单选模式

利用listview原生的方法,实现列表单选

1. 在布局文件中添加android:choiceMode="singleChoice"


或者在java代码中添加

 lvNoJiaru.setChoiceMode(ListView.CHOICE_MODE_SINGLE);// 设置listview单选
 lvNoJiaru.setAdapter(relatedJobAdapter);

重点,setChoiceMode要放在setAdapter方法之前

2.在listview的点击事件中这么写

lvNoJiaru.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView adapterView, View view, int i, long l) {
                lvNoJiaru.setItemChecked(i, true);//设置选中的item
                relatedJobAdapter.notifyDataSetChanged();// 通知adapter刷新布局
            }
        });

3.在adapter中这么写

@Override
    public View getView(int position, View convertView, ViewGroup viewGroup) {
        if (convertView == null) {
            convertView = LayoutInflater.from(context).inflate(R.layout.item_related_job, null);
            holder = new ViewHolder(convertView);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        // 通过isItemChecked方法,判断哪一个item被选中,然后进行相关逻辑处理
        if (this.listView.isItemChecked(position)) {
            holder.radioCheck.setChecked(true);
        } else {
            holder.radioCheck.setChecked(false);
        }
        return convertView;
    }

OK,搞定
效果如图所示

单选效果图.gif

你可能感兴趣的:(ListView单选模式)