2014-01-15 18 views
2

我使用GridView並實現多選。如何在Android中的GridView中使用多個選擇時隱藏菜單

當我從GridView中選擇多個項目時,它將在屏幕頂部顯示菜單。

但我不想在頂部顯示菜單。

我將GridView設置爲CHOICE_MODE_MULTIPLE_MODAL並實現了thr類MultiChoiceModeListener

是否有任何方法可以在選擇多個項目時隱藏菜單?

類的代碼是這樣設置的以下

public class LocalFileBrowserFragment extends Fragment implements MultiChoiceModeListener 

的代碼的GridView是這樣的:

private GridView fileListView; 
fileListView = (GridView) view.findViewById(R.id.browserList) ; 
fileListView.setChoiceMode(GridView.CHOICE_MODE_MULTIPLE_MODAL); 
fileListView.setMultiChoiceModeListener((MultiChoiceModeListener)this); 
fileListView.setNumColumns(4); 

MultiChoiceModeListenerGridView的代碼是這樣的:

@Override 
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     // TODO Auto-generated method stub 

     return true; 
    } 

    @Override 
    public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
     // TODO Auto-generated method stub 

     Log.i(TAG, "onCreateActionMode"); 
     return true; 
    } 

    @Override 
    public void onDestroyActionMode(ActionMode mode) { 
     // TODO Auto-generated method stub 
     for (int i = 0; i < fileListView.getCount(); i++) { 
      fileListView.setItemChecked(i, false); 
      mSelectMap.clear(); 
     } 
     mFileListAdapter.notifyDataSetChanged(); 
    } 

    @Override 
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
     // TODO Auto-generated method stub 
     //Log.i(TAG, "onPrepareActionMode"); 
     return true; 
    } 

    @Override 
    public void onItemCheckedStateChanged(ActionMode mode, int position, 
      long id, boolean checked) { 
     // TODO Auto-generated method stub 

     mSelectMap.put(position, checked); 
     mFileListAdapter.notifyDataSetChanged(); 
    } 

我設置了GridViewCHOICE_MODE_MULTIPLE_MODAL並執行thr類MultiChoiceModeListener

我不想在頂部顯示菜單。

是否有任何方法可以在選擇多個項目時隱藏菜單?

+0

怎麼樣CHOICE_MODE_MULTIPLE代替CHOICE_MODE_MULTIPLE_MODAL? – Entreco

+0

也許你的onCreateActionMode()必須返回false來防止動作模式被創建? – Entreco

+0

我有嘗試,但它不起作用。 – Martin

回答

0

我解決了這個問題,我用下面的代碼來顯示吧。

bar = getActivity().getActionBar(); 
bar.show(); 
+0

你放哪了? –

0

保存ActionMode在onCreateActionMode

 @Override 
     public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
      theActionMode = mode; 
      return true; 
     } 

一個你MultiChoiceModeListener的字段,則完成ActionMode在onItemCheckedStateChanged

public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { 

     // Your CheckedChange Code...... 

     theActionMode.finish(); 
    } 
相關問題