我尝试创建一个能够在EditText中格式化所选文本的笔记应用程序,就像我在Onenote中经常使用的那样。但每次我点击我的菜单图标时,EditText中的所选文本都会被重置,菜单会自动关闭。
这是我自定义编辑文字中的代码
public void init()
{
this.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.edit_text_menu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
});
}
菜单布局
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_bold"
android:title="Bold"/>
<item android:id="@+id/action_underline"
android:title="Underline"/>
<item android:id="@+id/action_italic"
android:title="Italic"/>
</menu>
onenote菜单的屏幕截图 http://i57.tinypic.com/zlriu9.png
我的应用的截图 http://i58.tinypic.com/2yjwlys.jpg
为 EditText 制作菜单以正确格式化所选文字的正确方法是什么?
更新!已经找到了一个我认为目前可行的解决方案
我只需要覆盖onWindowFocusChanged函数,所以当我点击另一个菜单时,它不会丢失它的选择。