EditText request focus
AndroidAndroid LayoutAndroid EdittextAndroid 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.