WebView ベースのアプリでテキスト型の入力要素に文字列を入力すると、仮想キーボードの上に可能な単語のリストが表示されます。
私のアプリケーションでは、ユーザーが任意の単語を入力することは許可されていません。代わりに、データベースからの単語とフレーズのみが有効です。
そこで、phonegap アプリから単語のリストを設定し、このリストの自動作成を無効にしたいと考えています。
Q: リストを作成することは可能ですか? また、その方法は?
(これは phonegap アプリであり、Android でテストしていますが、これは異なるプラットフォームの webview/テキスト入力フィールドで問題になる可能性があります)
編集:
設定/言語とキーボード/Android キーボード/提案を表示することで、提案リストを無効にできることがわかりました (はい、私は Android 開発は初めてです)。
ただし、もちろん、この設定は、ユーザーの操作なしで、アプリの外部で何も変更せずに、アプリ内からアプリに対してのみ行う必要があります。
これを成し遂げるチャンスはありますか?
EDIT 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);
}
このメソッドは、新しいリストが利用可能になるたびに実行されます (入力が変更され、サーバーが要求に応答した後)。
ただし、何も変更されていません。組み込みのメカニズムは依然として不利な作業を行っています。