2013-02-28 50 views
8

我目前有一個ListView,它激活ListViewOnItemLongClickListener中的上下文ActionBarisItemChecked總是返回與onItemClickListener內部應該相反的值嗎?

我想讓它可以通過點擊它們來選擇項目,但只有當上下文ActionBar啓動時纔可以選擇項目。

問題是,當我檢查isItemChecked()時,爲了切換項目的選擇狀態,它總是返回與它應該相反的東西。

下面是我實現的OnItemClickListener

list.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     if (mActionMode != null){ 
      list.setItemChecked(position, !list.isItemChecked(position)); 
     } 
     else{ 
      list.setItemChecked(position, false); 
     } 

    } 

}); 

編輯:這是非常..的bizzare這段代碼切換選擇狀態:

list.setItemChecked(position, list.isItemChecked(position)); 

這是怎麼回事上!?

編輯2:啊,它看起來像android自動檢查和取消每個項目自己...有什麼辦法來改變這種行爲,並自己處理它?

+0

我們需要了解mActionMode方法中的內容,因爲它觸發是否應該檢查複選框。你能夠包含'mActionMode()'方法的代碼嗎?謝謝。 – 2014-06-05 06:39:03

回答

1

這裏是setItemChecked方法的文檔: 設置在線路

list.setItemChecked(position, !list.isItemChecked(position)); 

你是它通過否定明確設置什麼isItemChecked回報相反的指定位置

的選中狀態在聲明中的secoend爭論

相關問題