EditText request focus

AndroidAndroid LayoutAndroid Edittext

Android Problem Overview


I am designing a login page as:

UserName:  .....

Password:  .....

     LoginButton

When the activity starts, I want the focus to go to "UserName" textbox and the keyboard to appear.

I am using the following code:

    boolean checkFocus=user.requestFocus();
	Log.i("CheckFocus", ""+checkFocus);
	if(checkFocus==true)
	{
	InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
	mgr.showSoftInput(user, InputMethodManager.SHOW_IMPLICIT);
	}

I don't understand where to write this code to make the keyboard appear when the activity starts and focus is on the "UserName" editText box. Can anyone please guide me?

Android Solutions


Solution 1 - Android

Programatically:

edittext.requestFocus();

Through xml:

<EditText...>
    <requestFocus />
</EditText>

Or call onClick method manually.

Solution 2 - Android

Yes, I got the answer.. just simply edit the manifest file as:

        <activity android:name=".MainActivity"
        android:label="@string/app_name"
        android:windowSoftInputMode="stateAlwaysVisible" />

and set EditText.requestFocus() in onCreate()..

Thanks..

Solution 3 - Android

youredittext.requestFocus() call it from activity

oncreate();

and use the above code there

Solution 4 - Android

It has worked for me as follows.

ed1.requestFocus();

            return; //Faça um return para retornar o foco

Solution 5 - Android

having the soft keyboard disabled (only external keyboards enabled), I fixed it by moving the cursors at the end on the EditText:

editText.setSelection(editText.getText().length)

Solution 6 - Android

edittext.requestFocus() works for me in my Activity and Fragment

Solution 7 - Android

>>you can write your code like

  if (TextUtils.isEmpty(username)) {
            editTextUserName.setError("Please enter username");
            editTextUserName.requestFocus();
            return;
        }

        if (TextUtils.isEmpty(password)) {
            editTextPassword.setError("Enter a password");
            editTextPassword.requestFocus();
            return;
        }

Solution 8 - Android

Set to the Activity in Manifest:

android:windowSoftInputMode="adjustResize"

Set focus, when a view is ready:

fun setFocus(view: View, showKeyboard: Boolean = true){
    view.post {
        if (view.requestFocus() && showKeyboard)
            activity?.openKeyboard() // call extension function
    }
}

Solution 9 - Android

I know its too late but only solution is working for me is

edittext.requestFocus()   
edittext.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,0f,0f,0))    
edittext.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_UP,0f,0f,0))

I used this to open keyboard programatically.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKanikaView Question on Stackoverflow
Solution 1 - AndroidAwais TariqView Answer on Stackoverflow
Solution 2 - AndroidKanikaView Answer on Stackoverflow
Solution 3 - AndroiddrooooooidView Answer on Stackoverflow
Solution 4 - AndroidRamon LopesView Answer on Stackoverflow
Solution 5 - AndroidAlberto MView Answer on Stackoverflow
Solution 6 - AndroidArpit PatelView Answer on Stackoverflow
Solution 7 - AndroidSHAZAMView Answer on Stackoverflow
Solution 8 - AndroidKonstantin KonopkoView Answer on Stackoverflow
Solution 9 - AndroidSumitView Answer on Stackoverflow