Как открывать клавиатуру, привязанную к EditText, автоматически?
Как сделать так, чтобы при запуске активности или фрагмента, который имеет EditText, автоматически открывалась клавиатура, привязанная к этому EditText?
MainActivity:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText editText = findViewById(R.id.edittext);
editText.requestFocus();
}
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Ответы (2 шт):
Автор решения: Cypher
→ Ссылка
Для этого у EditText нужно вызвать метод requestFocus()
edit_text.requestFocus()
Если не работает добавьте:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Автор решения: Сергей Беляков
→ Ссылка
Нашел на просторах stackOverFlow такой код:
Создаете метод
private fun showSoftKeyboard(context: Context, editText: EditText) {
try {
editText.requestFocus()
editText.postDelayed({
val keyboard = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
keyboard.showSoftInput(editText, 0)
}, 200)
} catch (npe: NullPointerException) {
Timber.e(npe)
} catch (e: java.lang.Exception) {
Timber.e(e)
}
}
А в методе onCreate:
showSoftKeyboard(this, your_edit_text)