で始まります。プログラムでを作成しました。AutoCompleteTextView
ビューで私のレイアウト。ユーザーが有効なデータをフィールドに入力した後、同じパラメータで同じ方法で最初のオブジェクトの直下に新しいAutoCompleteTextView
オブジェクトを作成します。私はArrayList
にフィールド参照のすべてを保存しています。この方法では、最後に参照フィールドの最後の要素の下に新しいフィールドがあることを確認しています。 - それはあらゆる分野で進んでいます。Android AutoCompleteTextView - 「再選択」ビューで動的IMEオプションの変更を処理します。
私は、この機能を追加したいと思います。新しいフィールドが作成されたとき、私は新規に作成したフィールドにEditorInfo.IME_ACTION_NEXT
とnextFocusForward
属性に最後のフィールドのIMEオプションを変更 - も、プログラムを。私が達成したいこと:ユーザーがキーボードのEnterキーを押すと、最後のフィールドのフォーカスが新しいフィールドにジャンプします。
ArrayList<AutoCompleteTextView> fields = new ArrayList<>();
//Creating freshlyCreatedField, IT'S STILL NOT IN THE fields LIST!
AutoCompleteTextView currentlySelectedField = fields.get(fields.size() - 1); // last element
currentlySelectedField.setImeOptions(EditorInfo.IME_ACTION_NEXT);
currentlySelectedField.setNextFocusForwardId(freshlyCreatedField.getId());
currentlySelectedField.setSingleLine(true); //ACTV needs it to get IME to work
//Adding freshlyCreatedField to the fields list,
//so next time it will be the currentlySelectedField
しかし、何が現在選択されてAutoCompleteTextView
オブジェクトに起こりません。このコードを実行した後:私は新しいIMEのオプションを設定するには、このコードを使用しています。フォーカスをクリアして要求しても機能しませんでした。逆の方法で作業するようになりました(毎回+130 "不可視"(技術的にGONE
)フィールド)。
もう1つ:他のフィールドを選択して、設定を変更して再選択すると、Enterボタンが最初に動作するように機能します。私はプログラムで同じことをすることができれば、それは私の問題を解決するだろう...どのようにそれを行うにはどのようなアイデア? (もちろん、私はもっと良い解決策も歓迎します...))