2011-12-06 98 views
0

我有活動與ListView和按鈕 - 「清除所有」和「確定」。 按鈕「清除所有」我清除項目的檢查狀態 - 它工作正常。設置項檢查onItemClick/ListView/

m_list.setItemChecked(pos, false); 

在onItemClick我試圖更改項目的狀態/檢查< - >選中/取決於複雜的業務邏輯。 Bussines層決定檢查 或不是多個項目。我試圖使用相同的代碼:

m_list.setItemChecked(position, bCheck); 

它不工作。後面的數據只改變視圖而不改變。

「全部清除」代碼:

@Override 
public void onClick(View v) 
{ 
    if (v == m_map) 
     GoToMap(); 
    else if (v == m_clear) 
    { 
     for (int i=0; i < m_poiCategories.size();i++) 
     m_list.setItemChecked(pos, false); 
    } 
} 

這個代碼不工作:

m_list.setOnItemClickListener(new OnItemClickListener() 
    { 
    @Override 
    public void onItemClick(AdapterView<?> listView, View selectedItem, int position, long itemId) 
    { 
     boolean b = true; 
     .... 
     m_list.setItemChecked(position, b); 
    } 
}); 

回答

3

如果您正在使用ListView總比則要求notifyDataSetChanged()從UI線程調用時工作任何數據都會改變。這將通過調用getView()多次更新UI,具體取決於顯示的項目數。

確保您的getView()已正確實施。

僅供參考我強烈建議查看並理解:http://www.youtube.com/watch?v=wDBM6wVEO70