2

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);
}

このメソッドは、新しいリストが利用可能になるたびに実行されます (入力が変更され、サーバーが要求に応答した後)。

ただし、何も変更されていません。組み込みのメカニズムは依然として不利な作業を行っています。

4

2 に答える 2

0

仮想キーボード (swype など) にさまざまなバリエーションがある場合、可能な単語のリストがない場合があります。したがって、このリストを表示しないための一般的な解決策はないと思います。

入力メソッドの実装に渡されるパラメーターを定義するパラメーターhttp://developer.android.com/reference/android/widget/TextView.html#attr_android:editorExtras editorExtras がありますが、PhoneGap でどのように使用するかわかりません応用

編集:

デフォルトの入力方法を拡張して、提案を表示しないようにすることができると思います

カスタム ソフトウェア キーボードの提供

独自のソフトウェア キーボードの開発に関心がある場合は、次のリファレンスを強くお勧めします。

IME は Android サービスとして実装されます。カスタム入力メソッドの実装に使用できる android.inputmethodservice および android.view.inputmethod と呼ばれる Android パッケージを確認することから始めます。Android SDK の SoftKeyboard サンプル アプリケーションは、ソフトウェア キーボードの実装を提供します。オンスクリーン インプット メソッドとインプット メソッドの作成に関する Android デベロッパーの技術記事。

ここで見つけましたhttp://e-university.wisdomjobs.com/android/chapter-946-288/handling-advanced-user-input.html

于 2012-04-27T16:18:12.590 に答える
0

jQuery UI のオートコンプリートのようなものを使用してみませんか。

http://jqueryui.com/demos/autocomplete/

また、これを JavaScript で自分で作成するのはそれほど難しくありません。

http://www.javascript-examples.com/autocomplete-demo/

于 2012-04-27T19:02:45.887 に答える