Android里ListView里面添加CheckBox实现单选。
2015-09-10 21:53
393 查看
我的上篇文章里面实现了ListView的多选:http://blog.csdn.net/u013792369/article/details/48311459
这上面文章里的这个方法里改成这个样子就可以了。也就是ListView里的item点击事件里改就可以了。
private int prePos=-1;
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
ViewHolder viewHolder = (ViewHolder)view.getTag();
if(prePos == -1)
//什么都没选的时候是 -1
{
viewHolder.cb.setChecked(true);
mList.get(position).setIsChecked(true);
prePos = position;
}
else
{
if(prePos != position) //点击的不是同一个
{
mList.get(prePos).setIsChecked(false);
mList.get(position).setIsChecked(true);
prePos = position;
adapter.notifyDataSetChanged();
}
else //两次点击同一个,
{
viewHolder.cb.setChecked(false);
mList.get(position).setIsChecked(false);
prePos = -1;
}
}
}
});
}
这上面文章里的这个方法里改成这个样子就可以了。也就是ListView里的item点击事件里改就可以了。
private int prePos=-1;
lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
ViewHolder viewHolder = (ViewHolder)view.getTag();
if(prePos == -1)
//什么都没选的时候是 -1
{
viewHolder.cb.setChecked(true);
mList.get(position).setIsChecked(true);
prePos = position;
}
else
{
if(prePos != position) //点击的不是同一个
{
mList.get(prePos).setIsChecked(false);
mList.get(position).setIsChecked(true);
prePos = position;
adapter.notifyDataSetChanged();
}
else //两次点击同一个,
{
viewHolder.cb.setChecked(false);
mList.get(position).setIsChecked(false);
prePos = -1;
}
}
}
});
}
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories