一連のEditTextエントリがあります。ユーザーがEnterキーを押すと、次のEditextに移動します。私は一度にこれを行う方法を知っていますが、すべてのedittextコントロールにキーエントリをチェックしてカーソルを進める同じ機能を使用するように指示する方法があります。 EditTextsごとに1つの関数を用意するのはちょっとおかしい
キーをスニッフィングするよりもはるかに簡単です:Android:singleLine="true"
およびAndroid:imeOptions="actionNext"
を設定してみてください(少なくとも1行の入力テキストビューの場合)。詳細については、Android ドキュメント TextViewを参照してください。
更新:singleLine
は 非推奨 になりましたが、省略してもかまいません。 Android:inputType="textMultiLine"
を明示的に設定しない限り、これは編集可能なテキストのデフォルトの動作であり、inputType
は編集可能なテキストのmaxLines="1"
の推奨されるsingleLine
置換をオーバーライドします。
ヨニから与えられた答えの代替または新しいアプローチについて...
singleLine
は考慮される 非推奨 であるため、Android:maxLines="1"
を使用してAndroid:inputType="text"
に手動で設定できます。
簡単な説明:
Android:inputType="text"
を使用して、入力を具体的に プレーンテキスト として扱います。Android:maxLines="1"
を使用して、テキストの最大行数を1に設定します(推奨)。maxLines="1"
を単独で使用しても効果はありませんが、Adamが言及しているように、inputType="text"
単独でも機能する場合があります(これはチェックしていません)。
追加中
Android:inputType="text"
xMLで十分です。入力タイプを定義していない場合、次の行に進みます。
すべてのeditTextオブジェクトに単一のイベントリスナーを追加してみてください。
OnKeyListener myKeyListener = new OnKeyListener() {
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
// TODO: do what you got to do
return false;
}
};
editText1.setOnKeyListener(myKeyListener);
editText2.setOnKeyListener(myKeyListener);
editText3.setOnKeyListener(myKeyListener);
Styles.xmlでこのカスタムスタイルを適用する
<style name="SingleLineText">
<item name="Android:inputType">text</item>
<item name="Android:maxLines">1</item>
</style>
そして、このようにEditTextで設定します
style="@style/SingleLineText"
EditTextに次の行を追加します
Android:singleLine="true"
Android:maxLines="1"