RequestFocus not working

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

In the above markup

 <requestFocus /> 

does not work. The text view does not focus when the operation starts. Is it because of the progress bar that overlaps the text view? Any ideas how to fix this?

+7
android android-edittext android-textview
source share
5 answers

I decided! In the manifest, I added the following actions:

 android:windowSoftInputMode="stateAlwaysVisible" 
+3
source share

I usually use the following focus settings: add the following attributes to your xml-layout

 <AutoCompleteTextView android:focusable="true" android:focusableInTouchMode="true"> </AutoCompleteTextView> 

and programmatically adjust focus, for example

 ((AutoCompleteTextView) findViewById(R.autocomplete_zone)).requestFocus(); 

fe in onResume or onWindowChanged

 public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { ((AutoCompleteTextView) findViewById(R.autocomplete_zone)).requestFocus(); } } 
+14
source share

To do this, in the Activity code:

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE); 
+2
source share

None of the above worked for me ... this is what I used

 txtView.getParent().requestChildFocus(txtView,txtView); 
+2
source share

You can try this in code if you want to force the keyboard to display.

 ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

then you can use this code to close the keyboard:

 ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(autocomplete_zone.getWindowToken(), 0); 
+1
source share

All Articles