2014-01-06 223 views
0

我有一個列表視圖與多個項目,我需要選擇和取消選擇列表項目,也刪除選定的項目。列表視圖有多個項目選擇和取消選擇

所以我看了下面的鏈接的例子,但它的android:minSdkVersion="11" 但我正在minSdkVersion =「10」。

鏈接:http://www.androidbegin.com/tutorial/android-delete-multiple-selected-items-listview-tutorial/

是的,我們可以覈對文本視圖做,複選框,單選按鈕,但要求是一樣,我不能使用。

有沒有其他辦法可以實現這個目標?

+0

請先告訴你的要求。我們無法猜測你需要什麼? – Sush

+0

@sush我需要一個列表項來選擇和取消選定的鏈接, – Goofy

+0

然後使用該教程只有吶。爲何在這裏? – Sush

回答

1

製作自定義列表適配器並獲取每個視圖的點擊並在適配器中維護標誌。如果標誌爲真,這意味着選擇了其他項目的項目被取消選擇,根據該項目,您可以更改項目視圖,如禁用該特定項目或顯示某個複選框。

+0

你能告訴我的例子嗎? – Goofy

0

我所做的是創建了一個ArrayList,它存儲所選項目的所有位置,並在點擊時切換背景顏色。

以我適配器我定義:

public ArrayList<Integer> selectedIds = new ArrayList<Integer>(); 

以下方法:

public void toggleSelected(Integer position) 
{ 
    if(selectedIds.contains(position)) 
    { 
     selectedIds.remove(position); 


    } 
    else 
    { 
     selectedIds.add(position); 
    } 
} 

其中就將此\從該ArrayList

移除項以我getView方法:

if (selectedIds.contains(position)) { 
     convertView.setSelected(true); 
     convertView.setPressed(true); 
     convertView.setBackgroundColor(Color.parseColor("#FF9912")); 
    } 
    else 
    { 
     convertView.setSelected(false); 
     convertView.setPressed(false); 
     convertView.setBackgroundColor(Color.parseColor("#000000")); 
    } 

這將檢查該位置是否存儲在ArrayList中。如果是,則將其繪製爲選定的。如果不是,則相反。

所有剩下的只有OnItemClick聽者,我說:

((YourAdapter)list.getAdapter()).toggleSelected(new Integer(position)); 

當YourAdapter是你的ListView

希望的適配器,這可以幫助任何人,因爲它是一個通用的答案:)

感謝eric.itzhak這裏:How to change background color of selected items in ListView?

相關問題