2016-06-08 53 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

谢谢你。像魅力一样工作。 –