我在这个问题上长时间寻找解决方案,所以我决定在这里问一下。如何禁用editText中的“复制/剪切/粘贴/”工具栏,但仍然有光标选择一些文本?
我写记事本应用程序,点击“新的注释”选项后,新的活动出现,看起来像这样:
因为我的应用程序的概念,它允许用户通过格式文本菜单编辑文本(在屏幕底部可见)我想让用户选择文本,而不显示底部的键盘和复制/剪切/粘贴菜单。键盘是通过切换按钮accesed(这工作得很好,对两行代码)
我已经当焦点是通过下面的代码设置的EditText禁用键盘弹出:
public static void disableSoftInputFromAppearing(EditText editText) {
if (Build.VERSION.SDK_INT >= 11) {
editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
editText.setTextIsSelectable(true);
} else {
editText.setRawInputType(InputType.TYPE_NULL);
editText.setFocusable(true);
}
}
的方法通过键盘按键上称为应用工具栏:
public void toggleKeyboard(MenuItem item) {
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0);
}
我想选择文本(其通过双击文本实现或长按的话),但主要问题是复制/剪切/粘贴工具栏,因为它涵盖了我的应用程序的工具栏:
这就是为什么我想摆脱这个工具栏,但仍然有可能选择特定的文本范围。
P.S.手机型号:HTC一个M7
任何帮助,将不胜感激
最好的问候, 汤姆
我以前试过这个解决方案。它可以防止出现自定义上下文菜单,但也会禁用选择文本按钮。我有一个游标,但是我不能“分开这个游标”来选择开始和结束选择文本的节点。 – Tomek
Yout下一个解决方案与第一个解决方案相同。我做了一些研究,并且发现,在手机处于水平方向模式时,实际上可以选择文本。当我在水平模式下打开键盘时,editText是我能看到的唯一的东西(键盘除外)。游标将应用程序默认的颜色更改为系统默认值,这真的很奇怪。我想我需要找到另一种解决方案,也许我只会为复制/粘贴工具栏留出空间。无论如何,感谢您的帮助,我真的很感谢:) – Tomek
你是最好的。 – Stanojkovic