Android: AutoCompleteTextView hide soft keyboard
android, android-softkeyboard, autocompletetextview
Solution
Use `OnItemClickListener`. Hope this works :)
AutoCompleteTextView text = (AutoCompleteTextView) findViewById(R.id.auto_insert_meds);
text.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(arg1.getWindowToken(), 0);
}
});
UPDATED
Use this
in.hideSoftInputFromWindow(arg1.getApplicationWindowToken(), 0);
instead of -
in.hideSoftInputFromWindow(arg1.getWindowToken(), 0);
Problem
I have an AutoCompleteTextView which as usual provides suggestions after a user types 3 letters. I want once once I touch the suggestion list to hide the soft keyboard. What I have done below with the table layout hides the keyboard only when clicking anywhere but the suggestion list. XML ``` <TableRow android:id="@+id/tableRow2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" > <AutoCompleteTextView android:id="@+id/auto_insert_meds" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ems="15" android:inputType="textVisiblePassword|textMultiLine" android:scrollHorizontally="false" android:text="" android:textSize="16sp" /> </TableRow> ``` Java ``` TableLayout tbl = (TableLayout) findViewById(R.id.main_table); tbl.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); in.hideSoftInputFromWindow(v.getWindowToken(), 0); return true; } }); ``` XML for custom list ``` <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/medlist_linear_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/med_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:scrollHorizontally="false" android:padding="3dp" android:textColor="@android:color/white" /> </LinearLayout> ```