在基于 webview 的应用程序的文本类型输入元素中输入字符串时,虚拟键盘上方会显示可能的单词列表。
在我的应用程序中,不允许用户输入任意单词,而只有数据库中的单词和短语是合法的。
所以,我想从我的 phonegap 应用程序中设置单词列表并禁用此列表的自动创建。
问:这是否可以创建列表 - 以及如何创建?
(这是一个 phonegap 应用程序,我正在 android 上进行测试,但这可能是不同平台上的 webview/文本输入字段的问题)
编辑:
刚刚发现(是的,我是 android 开发新手),可以通过以下方式禁用建议列表:设置/语言和键盘/Android 键盘/显示建议。
但当然,此设置应仅针对应用程序进行,从应用程序内部进行,无需用户交互,也不能更改应用程序外部的任何内容。
有机会完成这件事吗?
编辑 2:
我没有禁用建议列表,而是尝试使用它。InputMethodManager 的 displayCompletions 方法听起来很有希望,所以我尝试了以下代码:
...
// data member
InputMethodManager mInputMethodManager = null;
...
...
// initialized
mInputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
...
public void showSuggestions(String[] words) {
Log.d(TAG, "showSuggestions (in Java!): " + words.length); // yes, this code is executed
CompletionInfo[] completions = new CompletionInfo[words.length];
for (int i=0; i<words.length; i++) {
completions[i] = new CompletionInfo(i, i, words[i]); // no idea, what the 2 extra integers mean
}
mInputMethodManager.displayCompletions(mView, completions);
}
只要有可用的新列表(在输入更改并且服务器已响应请求之后),就会执行该方法。
然而,什么都没有改变——内置机制仍在做它不利的工作。