0

3 つの EditTexts が連続していますが、3 つの異なるレイアウトがあります。Enterをクリックすると、次のレイアウトでその行から次のEditTextにジャンプするように設定しました。問題は、行の最初のEditTextからEnterをクリックすると、3番目に移動することです。 3 番目は 2 番目に移動し、2 番目から 1 番目に移動します。最初の EditText で Enter キーを押すと、2 番目に移動し、同じ入力で 3 番目に移動します。たとえば、最初の EditText から 2 番目、次に 3 番目の Enter キーを同じように押してジャンプしないようにするにはどうすればよいですか?

これが私のコードの一部です:

et.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v1, int keyCode, KeyEvent KEYCODE_ENTER) {
        l2.getChildAt(localizarer).requestFocus();
        return true;
    }
});

et2.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v2, int keyCode, KeyEvent KEYCODE_ENTER) {
        l3.getChildAt(localizarer).requestFocus();
        return true;
    }
});

et3.setOnKeyListener(new OnKeyListener() {
    public boolean onKey(View v3, int keyCode, KeyEvent KEYCODE_ENTER) {
        l1.getChildAt(localizarer).requestFocus();
        return true;
    }
});

みたいなbreak機能が必要みたいです(笑)。どうすればこれを修正できますか? ありがとう、良い昼/夜を!

これを行うことで修正されました:

et.setOnKeyListener(new OnKeyListener() {

    public boolean onKey(View v, int keyCode, KeyEvent event) {
        // If the event is a key-down event on the "enter" button
        if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
        {
            // Perform action on key press
            l2.getChildAt(localizarer).requestFocus();
            return true;
        }
        return false;
    }
});

しかし、今、古い問題が戻ってきました.レイアウトの最初の子に行くのではなく、編集テキストの2番目の行にジャンプし、2番目に移動します..

4

2 に答える 2

0

あなたの編集テキストはあなたのxmlで定義されていますか?そこには正しい順序がありますか? それがうまくいかない場合は、使用できます

android:nextFocusDown

順序を設定する

于 2013-06-18T21:24:19.587 に答える
0

使用しない理由:

et1.requestFocus();

それ以外の

l1.getChildAt(localizarer).requestFocus();
于 2013-06-18T21:28:07.200 に答える