2016-06-08 56 views
0

我的代碼是低於 我的問題是當活動是第一次打開長時間點擊listview不工作。然後再次我在listview中的項目它將work.why這種情況發生任何人有任何想法。 由於提前onItemLongClickListener工作怪異

editListView.setOnItemLongClickListener(new  AdapterView.OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { 

      editListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 
      editListView.setMultiChoiceModeListener(new ListView.MultiChoiceModeListener() { 
       @Override 
       public void onItemCheckedStateChanged(ActionMode actionMode, int position, long l, boolean b) { 
        actionMode.setTitle(editListView.getCheckedItemCount() + " Selected"); 

        // Toggle the state of item after every click on it 
        mAdapterEdit.toggleSelection(position); 
       } 

       @Override 
       public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { 
        actionMode.getMenuInflater().inflate(R.menu.menu_group_edit, menu); 
        return true; 
       } 

       @Override 
       public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { 
        return false; 
       } 

       @Override 
       public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { 
        if (menuItem.getItemId() == R.id.delete_action) { 

         SparseBooleanArray selected = mAdapterEdit.getSelectedIds(); 
         short size = (short) selected.size(); 
         for (byte I = 0; I < size; I++) { 
          if (selected.valueAt(I)) { 
           GroupContactDAO selectedItem = mAdapterEdit 
             .getItem(selected.keyAt(I)); 
           mAdapterEdit.remove(selectedItem); 
          } 
         } 
         actionMode.finish(); 
         return true; 
        } 
        return false; 
       } 

       @Override 
       public void onDestroyActionMode(ActionMode actionMode) { 

       } 
      }); 

      return false; 
     } 
    }); 

回答

0

問題是你打電話setChoiceMode()setMultiChoiceModeListener()OnItemLongClickListener,這意味着這些方法將不會被調用,直到你執行一個列表項長時間點擊裏面。

editListView.setChoiceMode()editListView.setMultiChoiceModeListener()OnItemLongClickListener之外:

editListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 
editListView.setMultiChoiceModeListener(new ListView.MultiChoiceModeListener() { 
    // ... 
} 

editListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
    // ... 
} 
+0

謝謝你。像魅力一樣工作。 –