web-dev-qa-db-fra.com

Changer le focus en EditText Android

J'ai 2 EditText sur mon activité et définir la maxLength à 5.

Maintenant, je veux définir le focus sur editText2, si la longueur de 5 est atteinte dans editView1...

Je l'ai essayé avec:

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

Mais ça ne marchera pas ..

15
Prexx

Cela marche

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

Le message de Marc Juschkeits était presque parfait pour moi.

Mais dans mon cas, je devais tester si le keyevent est une action up parce que j'ai un texte standard dans l'edittext qui a la même longueur.

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

Demande focus ne fonctionne pas sur le fil principal, je pense. Mais je ne suis pas sûr . Cela a fonctionné pour moi,

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

});
1
ibrahim uzan

EdName.setOnKeyListener (new OnKeyListener () {

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

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

            }
                return false;


        }
    });
0