Skip to content Skip to sidebar Skip to footer

Focus Goto On Next Box After Enter Character In First Box

I have to implement an application in which I have set small edittext for input PIN number and Mobile Number. Each edit text contain 1 character at a time.Now when I run this app,

Solution 1:

1. implements TextWatcher on EditTexts

and then when you get Edittext's text length is 1.

2. Change focus on other EditText using

Call requestFocus() on the other EditText..

CODE: (This code is for your understanding, It may be different on your case and your need)

publicclassLoginActivityextendsActivityimplementsTextWatcher
{
 .
 .
 .

  editTextUName = (EditText) findViewById(R.id.edttextusername);
  editTextUName.addTextChangedListener(this);
  editTextPwd = (EditText) findViewById(R.id.edttextpassword);
  editTextPwd.addTextChangedListener(this);

@OverridepublicvoidafterTextChanged(Editable s)
{
    if (s.toString().length() == 1)
    {
              editTextPwd.requestFocus();
    }
}

Solution 2:

Use this Code

finalEditTextEditText01= (EditText) findViewById(R.id.editText01);
final EditText EditText02= (EditText) findViewById(R.id.editText02);
finalEditTextEditText03= (EditText) findViewById(R.id.editText03);
finalEditTextEditText04= (EditText) findViewById(R.id.editText04);

EditText01.requestFocus();
EditText01.setOnFocusChangeListener(newView.OnFocusChangeListener() {

                    @OverridepublicvoidonFocusChange(final View v,
                            finalboolean hasFocus) {

                        if (hasFocus) {
                            finalInputMethodManagermgr= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                            // only will trigger it if no physical keyboard is// open
                            mgr.showSoftInput(EditText01,
                                    InputMethodManager.SHOW_IMPLICIT);
                        }

                    }
                });

        EditText01.setOnKeyListener(newView.OnKeyListener() {

            @OverridepublicbooleanonKey(final View v, finalint keyCode,
                    final KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_DOWN) {
                    if (keyCode == KeyEvent.KEYCODE_DEL) {
                        EditText01.requestFocus();
                    } else {
                        EditText02.requestFocus();
                    }
                }
                returnfalse;
            }
        });

        EditText02.setOnKeyListener(newView.OnKeyListener() {

            @OverridepublicbooleanonKey(final View v, finalint keyCode,
                    final KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_DOWN) {
                    if (keyCode == KeyEvent.KEYCODE_DEL) {
                        EditText01.requestFocus();
                    } else {
                        EditText03.requestFocus();
                    }
                }
                returnfalse;
            }
        });
        EditText03.setOnKeyListener(newView.OnKeyListener() {

            @OverridepublicbooleanonKey(final View v, finalint keyCode,
                    final KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_DOWN) {
                    if (keyCode == KeyEvent.KEYCODE_DEL) {
                        EditText02.requestFocus();
                    } else {
                        EditText04.requestFocus();
                    }

                }
                returnfalse;
            }
        });

        EditText04.setOnKeyListener(newView.OnKeyListener() {

            @OverridepublicbooleanonKey(final View v, finalint keyCode,
                    final KeyEvent event) {

                if (event.getAction() == KeyEvent.ACTION_DOWN) {
                    if (keyCode == KeyEvent.KEYCODE_DEL) {
                        EditText03.requestFocus();
                    } 

                }

                returnfalse;

            }
        });

Solution 3:

Add a text change listener

      textView1.addTextChangedListener(new TextWatcher() {
            publicvoidafterTextChanged(Editable s) {

               textView2.requestFocus();

            }

            publicvoidbeforeTextChanged(CharSequence s, int start, int count,             int after) {
             }

            publicvoidonTextChanged(CharSequence s, int start, int before, int count) {
            }
        });

Solution 4:

This should work fine. mPinFirst and so on are the EditTexts representing each Pin entry. Should also take care of backspacing.

    mPinFirst.setOnKeyListener(onKeyListener);
    mPinSecond.setOnKeyListener(onKeyListener);
    mPinThird.setOnKeyListener(onKeyListener);
    mPinFourth.setOnKeyListener(onKeyListener);




View.OnKeyListeneronKeyListener=newView.OnKeyListener() {
        @OverridepublicbooleanonKey(View view, int i, KeyEvent keyEvent) {

        if(KeyEvent.KEYCODE_DEL != keyEvent.getKeyCode()) {
            if (((ESEditText) view).getText().length() == 1)
                if (view.focusSearch(View.FOCUS_RIGHT) != null) {
                    view.focusSearch(View.FOCUS_RIGHT).requestFocus();
                    returntrue;
                }
        }else{
            ((ESEditText) view).setText("");
            if (view.focusSearch(View.FOCUS_LEFT) != null) {
                view.focusSearch(View.FOCUS_LEFT).requestFocus();
                returntrue;
            }
        }
        returnfalse;
    }
};

Post a Comment for "Focus Goto On Next Box After Enter Character In First Box"