[英]How to add checkbox to each item in listview
i am working on a calander app. 我正在开发calander应用程序。 a listview which shows all calendar available.
显示所有可用日历的列表视图。 how can add a checkbox to it and also the calendar selected before should show checked.
如何向其中添加复选框,以及之前选择的日历也应显示为选中状态。
i want a list view like this. 我想要这样的列表视图。
textview cb 文字检视cb
Set the listview adapter to "simple_list_item_multiple_choice" 将列表视图适配器设置为“ simple_list_item_multiple_choice”
ArrayAdapter<String> adapter;
List<String> values; // put values in this
//Put in listview
adapter = new ArrayAdapter<UserProfile>(
this,
android.R.layout.simple_list_item_multiple_choice,
values);
setListAdapter(adapter); //Set the adpter to list View
Second method would be to create a Custom Adapter By extending the Base adapter class: 第二种方法是通过扩展Base适配器类来创建Custom Adapter:
Look at the example in the link: 查看链接中的示例:
http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html
You can use checkedTextView for you ListView rows(using custom adapter) and specify android:choiceMode="multipleChoice" to your list view 您可以为您的ListView行使用checkedTextView(使用自定义适配器),并在列表视图中指定android:choiceMode =“ multipleChoice”
Here is a sample from my code: 这是我的代码示例:
<CheckedTextView
android:id="@+id/member_name"
android:layout_width="match_parent"
android:layout_height="48dp"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="center_vertical"
android:paddingLeft="20dp"
android:textColor="@color/dark_grey_txt" />
Here, it will add checked drawable as you tap on CheckedTextView 在这里,当您点击CheckedTextView时,它将添加选中的可绘制对象
Now,Store selected items in List<> and you can add and remove on click 现在,将选定的项目存储在列表<>中,然后单击即可添加和删除
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView ctv = (CheckedTextView) view.findViewById(R.id.member_name);
if (ctv != null) {
if (ctv.isChecked()) {
ctv.setChecked(false);
listAdapter.removeSelectedMembers(position);
} else {
ctv.setChecked(true);
listAdapter.setSelectedMembers(position);
}
}
}
//adapter Methods of adding and removing Item //适配器添加和删除项目的方法
public void setSelectedMembers(int position) {
if (!selectedMembersList.contains(String.valueOf(position))) {
selectedMembersList.add(String.valueOf(position));
}
}
public void removeSelectedMembers(int position) {
selectedMembersList.remove(String.valueOf(position));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.