2017-03-25 94 views
-3

我想改变textview选择dialoge这样的: enter image description here自定义选择对话框的TextView

我想要的图标

+3

别这样做。有一个原因[这是关闭](http://stackoverflow.com/questions/43013878/custom-selection-dialog-for-textview)。至少在你方面表现出一些努力。 –

回答

1

2列看一看这个链接https://stackoverflow.com/a/13004720/7764939

我只是在此粘贴其内容:

TextView(因此EditText)有一个方法setCustomSelectionActionModeCallback()应该使用,而不是startActionMode()。使用此功能可以自定义TextView用于文本选择的菜单。示例代码:

bodyView.setCustomSelectionActionModeCallback(new StyleCallback()); 

其中StyleCallback通过删除全部选择和添加一些造型动作customises文本选择菜单:

class StyleCallback implements ActionMode.Callback { 

    public boolean onCreateActionMode(ActionMode mode, Menu menu) { 
     Log.d(TAG, "onCreateActionMode"); 
     MenuInflater inflater = mode.getMenuInflater(); 
     inflater.inflate(R.menu.style, menu); 
     menu.removeItem(android.R.id.selectAll); 
     return true; 
    } 

    public boolean onPrepareActionMode(ActionMode mode, Menu menu) { 
     return false; 
    } 

    public boolean onActionItemClicked(ActionMode mode, MenuItem item) { 
     Log.d(TAG, String.format("onActionItemClicked item=%s/%d", item.toString(), item.getItemId())); 
     CharacterStyle cs; 
     int start = bodyView.getSelectionStart(); 
     int end = bodyView.getSelectionEnd(); 
     SpannableStringBuilder ssb = new SpannableStringBuilder(bodyView.getText()); 

     switch(item.getItemId()) { 

     case R.id.bold: 
      cs = new StyleSpan(Typeface.BOLD); 
      ssb.setSpan(cs, start, end, 1); 
      bodyView.setText(ssb); 
      return true; 

     case R.id.italic: 
      cs = new StyleSpan(Typeface.ITALIC); 
      ssb.setSpan(cs, start, end, 1); 
      bodyView.setText(ssb); 
      return true; 

     case R.id.underline: 
      cs = new UnderlineSpan(); 
      ssb.setSpan(cs, start, end, 1); 
      bodyView.setText(ssb); 
      return true; 
     } 
     return false; 
    } 

    public void onDestroyActionMode(ActionMode mode) { 
    } 
} 

的菜单添加的XML是:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/italic" 
      android:showAsAction="always" 
      android:icon="@drawable/italic" 
      android:title="Italic"/> 
    <item android:id="@+id/bold" 
      android:showAsAction="always" 
      android:icon="@drawable/bold" 
      android:title="Bold"/> 
    <item android:id="@+id/underline" 
      android:showAsAction="always" 
      android:icon="@drawable/underline" 
      android:title="Underline"/> 
</menu> 
+0

谢谢,但我想要2列图标 –