2015-11-08 88 views
0

我試圖從用戶從TextView元素中選擇某些文本時從CAB中刪除默認項目,例如「複製」和「全選」。刪除TextView選項中的默認CAB項ActionMode

我已經使用此代碼重寫了默認操作,但是擴充新的菜單資源不會刪除默認項目。

textView.setCustomSelectionActionModeCallback(new ActionMode.Callback() { 
    @Override 
    public boolean onCreateActionMode(ActionMode mode, Menu menu) { 

     mode.setTitle("Test"); 
     mode.getMenuInflater().inflate(R.menu.new_menu_selection, menu); 
     return true; 
    } 

    @Override 
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 

     return false; 
    } 

    @Override 
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     return false; 
    } 

    @Override 
    public void onDestroyActionMode(ActionMode mode) { 

    } 
}); 

有沒有解決方案呢?

+0

嘗試在onCreateActionMode返回false() –

+0

返回false並不表明這讓用戶擴展自己的選擇箭頭 – Eric

回答

2

要刪除您可以撥打menu.clear()之前膨脹新菜單中的默認項:

textView.setCustomSelectionActionModeCallback(new ActionMode.Callback() { 
    @Override 
    public boolean onCreateActionMode(ActionMode mode, Menu menu) { 

     menu.clear(); 

     mode.setTitle("Test"); 
     mode.getMenuInflater().inflate(R.menu.new_menu_selection, menu); 
     return true; 
    } 

    @Override 
    public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 

     return false; 
    } 

    @Override 
    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     return false; 
    } 

    @Override 
    public void onDestroyActionMode(ActionMode mode) { 

    } 
}); 
+0

完善!我沒有意識到這很簡單 – Eric