这篇文章主要介绍了 Android ListView ImageView 实现单选按钮的相关资料, 需要的朋友可以参考下
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
做 Android 开发两年的时间,技术稍稍有一些提升,刚好把自己实现的功能写出来,记录一下,如果能帮助到同行的其他人,我也算是做了件好事,哈哈!!废话不多说,先上个图。
先上一段代码:
- 1
- if (lastposition == position) {
- 2 viewHolder.setImageResource(R.id.iv_yuandian1, R.mipmap.ic_button_checked);
- 3
- } else {
- 4 viewHolder.setImageResource(R.id.iv_yuandian1, R.mipmap.ic_button_unchecked);
- 5
- }
我先在 Adapter 中记录一下默认的位置,因为本人在项目中搭建了一个 ListViewAdapter 的抽象类,所以每次在使用时只需要直接在 Activity 中 new 一下,然后直接在方法里面设置文本内容或者图片资源 (如上面的代码的写法),以后会跟大家分享这个抽象类,当然,这个抽象类还是在高手的指导下完成的,大伙可以忽略我这种写法,就按照正常的 BaseAdapter 上面写就行了。扯远了,说回主题。其实整个功能的主要部分在 ListView 的 Item 点击事件中,其主要代码如下:
- lv_choosecompany.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
- //把当前选中的条目加上选中效果
- old_imageView = (ImageView) view.findViewById(R.id.iv_yuandian1);
- old_imageView.setImageResource(R.mipmap.ic_button_checked);
- new_imageView = (ImageView)view.findViewById(R.id.iv_yuandian1);
- if (lastposition != -1 && lastposition != position){
- //如果已经单击过条目并且上次保存的item位置和当前位置不同
- new_imageView.setImageResource(R.mipmap.ic_button_unchecked);//把上次选中的样式去掉
- }
- new_imageView = old_imageView;//把当前的条目保存下来
- lastposition = position;//把当前的位置保存下来
- listViewAdapter.notifyDataSetChanged();
- }
- });
整体流程差不多就是这个样子,如果想保留选中以后的文本信息,只需要在点击的时候,将 TextView 的内容保存下来即可,这里就不在展示代码,不足的地方还请同行们多多指教。
来源: http://www.phperz.com/article/17/0318/301122.html