在基于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);
}
只要有新列表可用(在输入更改且服务器已回答请求之后),就会执行该方法。
然而,一切都没有改变 - 内置机制仍在做不利的工作。
答案 0 :(得分:0)
如果存在不同的虚拟键盘变体(swype和其他),则可能没有可能的单词列表。因此,我认为没有显示此列表的通用解决方案。
有一个参数http://developer.android.com/reference/android/widget/TextView.html#attr_android:editorExtras editorExtras定义了传递给输入法实现的参数,但我不确定你将如何在PhoneGap应用程序中使用它
修改强>
我想您可以扩展默认输入法并使其不显示建议 inputmethod reference http://developer.android.com/reference/android/inputmethodservice/InputMethodService.html
提供自定义软件键盘
如果您有兴趣开发自己的软件键盘,我们强烈推荐以下参考:
IME是作为Android服务实现的。首先回顾一下名为android.inputmethodservice和android.view.inputmethod的Android软件包,它们可用于实现自定义输入方法。 Android SDK中的SoftKeyboard示例应用程序提供了软件键盘的实现。 关于屏幕输入方法和创建输入法的Android Developer技术文章。
在此处找到http://e-university.wisdomjobs.com/android/chapter-946-288/handling-advanced-user-input.html
答案 1 :(得分:0)