- 浏览: 20153 次
- 性别:
- 来自: 南京
最新评论
-
qqyumidi123:
非常感谢,问题解决了,但是不太明白为什么这么做就好了呢?
android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法 -
chuxuaner:
太感谢,刚好解决了这个问题
android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法 -
yinpeng633:
多谢,正好解决了我的问题
android 当ListView滚动时自动调用 onCheckedChanged 导致CheckBox 状态不停变化 的解决办法 -
superjunjin:
不错
安卓ListView中CheckBox的使用(支持Item列表项的删除,全选,全不选) -
No_J:
感激分享。学习学习。
安卓PopupWindow+ListView实现登录账号选择下拉框
文章列表
原文:http://sinye.iteye.com/blog/1068204#
里面讲的比较好理解。
今天在做一个含有CheckBox 的ListView时,发现当初始化CheckBox的状态后, 滚动ListView,其中CheckBox 的选中状态不停的发生变化。最后发现原因是 ListView滚动时自动调用 onCheckedChanged 导致的。在查看了各种博客的解决办法后,国外的网站上有一个办法解决了我的问题。写下来分享一下。
在自定义Adapter的getView方法中这样写就行了。
//在初始化CheckBox状态和设置状态变化监听事件之前,先把状态变化监听事件设置为null
holder.checkBox.setOnCheckedChangeListen ...
ListView 自身提供了 CheckBox 只需要添加一行代码
getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
但是这种实现想要自己控制操作起来局限很多。所以我选择了自己添加CheckBox的方式。可以支持列表项的全选,删除,并保持数据的对应关系不会乱。
列表中的CheckBox选中状态与一个Map进行绑定,利用 adapter.notifyDataSetChanged();来更新界面。
效果如下:
下面直接看代码把。
main.xml
<?xml version="1 ...
这段时间在做android开发,发现自定义下拉框有很多种方法实现,我介绍一种PopupWindow+ListView的方式,实现起来比较灵活。效果:
直接看核心代码:
//获取文本框
etLoginName = (EditText)findViewById(R.id.login_edit_account);
//自定义ListView的Adapter
adapter=new myAdapter();
listView=new ListView(TestPopupWindowActivity.this);
pop=new PopupWindow(listVi ...