android 开发 listview绑定radiobutton控件 如何实现listview列表中只有一个radiobutton被选中?
android开发listview绑定radiobutton控件如何实现listview列表中只有一个radiobutton被选中?而且再加入radiobutton后,l...
android 开发 listview绑定radiobutton控件 如何实现listview列表中只有一个radiobutton被选中?而且再加入radiobutton后,listview的单击事件setOnItemClickListenerlistview无法响应 怎么做才能响应?求大神!
展开
3个回答
2015-09-02 · 知道合伙人软件行家
关注
展开全部
listview绑定radiobutton控件,需要用自定义的Adapter
控制RadminButton只能选一个的方法:
使用自定义Adapter
在adapter.getView方法中给RadminButton注册点击事件
在onClick事件中用个集合记录当前RadminButton的checked状态
调用adapter.notifyDataSetChanged(); 刷新列表即可
因为刷新列表的时候,会重新调用getView方法
2013-02-28
展开全部
radiobutton控件外层布局加上android:descendantFocusability= "blocksDescendants"
radiobutton控件加上android:focusable = "false" 再重新设置监听事件就行了
你说的"如何实现listview列表中只有一个radiobutton被选中" 是什么意思 ?
有几个radiobutton? 只有一个就设置选中一个就完了 还想怎样?
radiobutton控件加上android:focusable = "false" 再重新设置监听事件就行了
你说的"如何实现listview列表中只有一个radiobutton被选中" 是什么意思 ?
有几个radiobutton? 只有一个就设置选中一个就完了 还想怎样?
更多追问追答
追问
因为listview中没加入一行数据就要有一个radiobutton 但是每行的radiobutton可以同时被选中 等于他们就不是一组的 也不能用radiogroup分组
追答
listview item 在adapter 中设置选中就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.setOnItemClickListenerlistview无法响应:
radiobutton的父控件加上android:descendantFocusability= "blocksDescendants"
radiobutton控件加上android:focusable = "false"
2.只有一个radiobutton被选中:
首先:设置一个int变量,记录上次选中的条目,例如,int lastSelectedIndex;初始为-1,表示无选中项。
然后:在setOnItemClickListenerlistview中,当被选中时,设置lastSelectedIndex为当前的index,并且调用adapter.notifyDataSetChanged()来刷新。
最后:在adapter中的getView()中,判断如果当前的index == lastSelectedIndex,则将radiobutton设置为选中状态,否则是未选中状态。
radiobutton的父控件加上android:descendantFocusability= "blocksDescendants"
radiobutton控件加上android:focusable = "false"
2.只有一个radiobutton被选中:
首先:设置一个int变量,记录上次选中的条目,例如,int lastSelectedIndex;初始为-1,表示无选中项。
然后:在setOnItemClickListenerlistview中,当被选中时,设置lastSelectedIndex为当前的index,并且调用adapter.notifyDataSetChanged()来刷新。
最后:在adapter中的getView()中,判断如果当前的index == lastSelectedIndex,则将radiobutton设置为选中状态,否则是未选中状态。
更多追问追答
追问
我觉得你已经说的很细了 但是我是新手 还是听得不太懂 比如怎么获取当前的index,而且 像getView和adapter.notifyDataSetChanged()从来都没用过.你有没有例子之类的给我看看 谢谢!
追答
setOnItemClickListenerlistview这个方法中会传给你一个int的值这个就是我说的index,你只需要写一下lastSelectedIndex = index;还有,在adapter中的getView()中也会有一个int值,这个就是我说的index
至于adapter.notifyDataSetChanged,是指当listView相对应的数据发生变化时,调用这个方法,listView才能刷新。
建议你先到网上搜索一下最简单的试用listVIew的方法,应该会很快的,然后你再来看我给你说的,就懂了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询