2013-03-02 107 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

相關問題