如何在OnItemClickListener()中检查复选框?
-
26-10-2019 - |
题
我的listView行中有一个复选框,看起来像这样。
===========================================
[CheckBox] [TextView] [TextView] [TextView]
===========================================
XML代码在这里
<CheckBox
android:id="@+id/course_search_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:clickable="false"
android:focusable="false" />
而且我已经使复选框不可点击且可集中,以便将点击事件传递到listView。
我想在这里做的是,当用户单击listView时,请检查复选框,然后将ListView的单击位置添加到ArrayList。那么,如何在ListView的OnItemClickListener中检查复选框?
请帮忙,谢谢。
解决方案
您可以在您的 OnItemClickListener
:
public void onItemClick(AdapterView parent, View view, int position, long id){
CheckBox box = (CheckBox)view.findViewById(R.id.course_search_checkbox);
box.setChecked(true);
}
其他提示
好吧,如果它是一个选择列表,那么您需要这些API ListView
获得位置/ID:
getSelectedItemId()
getSelectedItemPosition()
现在,如果您已为ListView实施了适配器。在那里为apis bindView
, getView
etc(根据您使用的适配器的不同),根据上述API设置了检查状态。就像是
public View getView(int position, View convertView, ViewGroup parent)
{
ListView listView = (ListView)parent; // This is the parent view group passed as argument.
CheckBox cb = (CheckBox)convertView.findViewById(R.id.check_box);
if(getSelectedItemPosition() == position)
cb.setChecked(true);
else
cb.setChecked(true);
}
对于MultiSelection,您需要在ListView的API下面:
getCheckedItemPositions
检查复选框的代码将类似于单个选择(虽然不是确切的)。
注意:提到的代码仅供参考。这不是优化的代码。绝对需要修改。笔记:
不隶属于 StackOverflow