2013-03-02 110 views
0

我正在使用calander应用程序。显示所有可用日历的列表视图。 如何添加一个复选框,并且还选择之前选择的日历应该显示已检查。如何将复选框添加到列表视图中的每个项目

我想要一个这样的列表视图。

TextView的CB

+0

你试过了什么?在问这个问题之前,至少做一些研究。 – Rahil2952 2013-03-02 07:55:24

+0

看看..你会得到你所有的答案。 http://stackoverflow.com/questions/1505751/android-binding-data-from-a-database-to-a-checkbox-in-a-listview – 2013-03-02 08:02:46

回答

1

设置列表视图适配器“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 

第二种方法是创建一个自定义适配器通过扩展底座适配器类:

看的例子链接:

http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html

+0

simple_list_item_multiple_choice 这件事情很好。但我怎样才能使用选中的未选中状态? – Hafiz 2013-03-02 08:02:56

+0

@Hafiz请接受答案,如果你发现它有用 – 2013-03-02 08:04:04

+0

请看看下面的链接它会清除你所有的疑惑: http://appfulcrum.com/2010/09/12/listview-example-3-简单选择复选框/ http://wptrafficanalyzer.in/blog/listview-with-checkboxes-in-android/ – 2013-03-02 08:08:13

0

可以使用checkedTextView为你的ListView行(使用自定义适配器)和指定的Android:choiceMode =“选择题”你的列表视图

这里是我的代码示例:

<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" /> 

这里,如您在CheckedTextView挖掘将增加检查绘制

现在,在列表<商店选择项目>您可以添加和删除点击

@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); 
     } 
    } 
} 

//适配器添加和删除的方法项目

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)); 
} 
+0

没错。 但我可以访问选中未选中状态????? – Hafiz 2013-03-02 08:39:05

+0

是的,您可以使用isChecked()方法访问选中状态。我在这里编辑我的代码 – 2013-03-02 08:54:15

+0

我已更新代码在这里 – 2013-03-02 08:59:33

相关问题