android 开发 listview绑定radiobutton控件 如何实现listview列表中只有一个radiobutton被选中?

2024-12-29 07:02:13
推荐回答(3个)
回答1:

listview绑定radiobutton控件,需要用自定义的Adapter

控制RadminButton只能选一个的方法:

  1. 使用自定义Adapter

  2. 在adapter.getView方法中给RadminButton注册点击事件

  3. 在onClick事件中用个集合记录当前RadminButton的checked状态

  4. 调用adapter.notifyDataSetChanged(); 刷新列表即可

  5. 因为刷新列表的时候,会重新调用getView方法

回答2:

radiobutton控件外层布局加上android:descendantFocusability= "blocksDescendants"
radiobutton控件加上android:focusable = "false" 再重新设置监听事件就行了

你说的"如何实现listview列表中只有一个radiobutton被选中" 是什么意思 ? 
有几个radiobutton? 只有一个就设置选中一个就完了 还想怎样?

回答3:

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设置为选中状态,否则是未选中状态。