我是这样启动软键盘的:
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.toggleSoftInputFromWindow(buttonLayout.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0);
buttonLayout
是我 UI 上的一个简单按钮。
如何提取用户写的内容(不使用 EditText
字段或可能隐藏 EditText
)以便用户无法看到或点击它?
最佳答案
如果没有 EditText,您将遇到困难。
InputMethod 需要连接到 View 。无论您使用什么 View ,您都需要覆盖 onCreateInputConnection
以返回自定义 InputConnection
对象,该对象至少实现 commitText(用于文字输入)、deleteSurroundingText
(用于删除)和 sendKeyEvent
(用于假定您处于哑模式的键盘),以及所有完成功能。输入连接是很复杂的事情,如果你不正确,你会搞砸第三方键盘,如 Swiftkey 和 Swype。我真的不建议这样做。
如果你想这样做,你最好的机会就是声明你的窗口是一个 TYPE_NULL
输入类型。大多数键盘都会 self 愚弄,并假定您在该模式下只接受最简单的命令。但你不能指望它。
我会查看 EditText
类返回的 InputConnection
并尽可能多地复制它。
关于java - 如何从软键盘获取输入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35567315/