studio requestfocus open after android android-edittext android-textview

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);