requestfocus - open keyboard android studio
requestFocus no funciona (5)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="20dp" >
<AutoCompleteTextView
android:id="@+id/autocomplete_zone"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:dropDownVerticalOffset="0.2dp"
android:ems="10"
android:hint="@string/zone_hint"
android:inputType="text"
android:lines="1"
android:maxLines="1"
android:popupBackground="#00ffffff"
android:textColor="#ffffff"
android:textColorHint="#ffffff" >
<requestFocus />
</AutoCompleteTextView>
<ProgressBar
android:id="@+id/progressBar1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignBottom="@id/autocomplete_zone"
android:layout_alignRight="@id/autocomplete_zone"
android:layout_alignTop="@id/autocomplete_zone"
android:paddingBottom="5dp"
android:visibility="invisible" />
</RelativeLayout>
En el marcado anterior
<requestFocus />
No funciona. La vista de texto no está enfocada cuando se inicia la actividad. ¿Esto se debe a la barra de progreso que se superpone a la vista de texto? Alguna idea de cómo solucionar este problema?
¡Resuelto! En manifiesto agregué siguiendo a la actividad:
android:windowSoftInputMode="stateAlwaysVisible"
Puede probar esto en el código si quiere mostrar el teclado con fuerza.
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
entonces puedes usar este código para cerrar el teclado:
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(autocomplete_zone.getWindowToken(), 0);
Usualmente utilizo lo siguiente para establecer el foco: Agregue las siguientes atribuciones a su xml-layout
<AutoCompleteTextView
android:focusable="true"
android:focusableInTouchMode="true">
</AutoCompleteTextView>
y establecer el enfoque programáticamente como
((AutoCompleteTextView) findViewById(R.autocomplete_zone)).requestFocus();
fe en onResume
o onWindowChanged
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
((AutoCompleteTextView) findViewById(R.autocomplete_zone)).requestFocus();
}
}
Para hacer esto en código, en tu Activity
:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
Ninguno de los anteriores funcionó para mí ... esto es lo que usé
txtView.getParent().requestChildFocus(txtView,txtView);