webentwicklung-frage-antwort-db.com.de

Ändern Sie den Fokus auf EditText Android

Ich habe 2 EditText-Werte für meine Aktivität und setze die Variable maxLength auf 5.

Jetzt möchte ich den Fokus auf editText2 setzen, wenn die Länge von 5 in editView1... erreicht wird.

Ich habe es versucht mit:

editView1.setOnKeyListener(new OnKeyListener() {
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(editView1.getText().length() == 5)
            editView2.requestFocus();
        return false;
    }
});

Aber es wird nicht funktionieren ..

15
Prexx

Das funktioniert

final EditText editText1 = (EditText) findViewById(R.id.editText1);
final EditText editText2 = (EditText) findViewById(R.id.editText2);

editText1.setOnKeyListener(new OnKeyListener() {

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if(editText1.getText().length() == 5)
            editText2.requestFocus();
        return false;
    }
});
37
Marc Juschkeit

Der Beitrag von Marc Juschkeit war fast perfekt für mich.

In meinem Fall musste ich jedoch testen, ob es sich bei dem Keyevent um eine Aktion handelt, da ich im Edittext einen Standardtext habe, der dieselbe Länge hat.

final EditText editText1 = (EditText) findViewById(R.id.editText1);
final EditText editText2 = (EditText) findViewById(R.id.editText2);

editText1.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if (keyEvent.getAction() == KeyEvent.ACTION_UP) {
                if (editText1.getText().length() == 5) {
                    editText2.requestFocus();
                }
            }
            return false;
        }
    });
1
klange

Fordern Sie an, dass der Fokus nicht auf dem Haupt-Thread funktioniert, denke ich. Aber ich bin mir nicht sicher. Das ist für mich gearbeitet,

_edittext.post(new Runnable() {
      public void run() 
        {
           _edittext.requestFocus();
        }

});
1
ibrahim uzan

EdName.setOnKeyListener (neuer OnKeyListener () {

        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            System.out.println("Yes Bud");

            if(EdName.length()== 5)
            {
                    EdBin.requestFocus();

            }
                return false;


        }
    });