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;
}
【ListView单选模式】OK,搞定
效果如图所示
单选效果图.gif
推荐阅读
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 设计模式-代理模式-Proxy
- Flutter的ListView
- 7、前端--jQuery简介、基本选择器、基本筛选器、属性选择器、表单选择器、筛选器方法、节点操作、绑定事件
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- Kotlin基础(10)-代理模式在kotlin中的使用
- 长谈的确是这个时代需要的一种模式
- 《读_Head_First_有感》_“命令模式”