2

LinearLayoutに2つのEditTextがあるとしましょう。最初のEditTextのソフトキーボードの「Enter」ボタンは「次へ」であり、2番目のEditTextのソフトキーボードの「Enter」ボタンは「終わり"。EditTextのテストに使用するコードは次のとおりです。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    LinearLayout editContainer = new LinearLayout(this);
    editContainer.setOrientation(LinearLayout.VERTICAL);

    EditText firstEdit = new EditText(this);
    firstEdit.setSingleLine(true);

    EditText secondEdit = new EditText(this);
    secondEdit.setSingleLine(true);

    editContainer.addView(firstEdit);
    editContainer.addView(secondEdit);

    setContentView(editContainer);
}

EditTextが最後のものであるかどうかをプログラムで知る方法を誰かに教えてもらえますか?もちろん、LinearLayout全体をトラバースすることはできますが、このアプローチを最後の手段として維持したいと思います。

ありがとう!!

4

3 に答える 3

1

Next/DoneラベルはsetImeOptionsで設定されます。この値を照会する場合は、 getImeOptionsを試すことができます。

于 2012-05-03T20:44:06.903 に答える
0

すばやく簡単な方法は、ビューに「最後」のタグを付けることです。

EditText secondEdit = new EditText(this);
secondEdit.setSingleLine(true);
secondEdit.setTag('last');

この値は次のように取得しますview.getTag()

于 2012-05-03T20:30:12.250 に答える
0

次のように、EditTextsに一意のIDを指定できます。

    mEditText1.setId(1);
    mEditText2.setId(2);

mEditText.getId()次に、そのID( )をEditTextの総数と比較することにより、フォーカスされたEditTextが最後のものであるかどうかを確認できます。

setTag()同様に、とメソッドを使用できますgetTag()

于 2012-05-03T20:34:12.657 に答える