Android: AutoCompleteTextView masquer le clavier virtuel
J'ai un AutoCompleteTextView qui comme d'habitude fournit des suggestions d'après un utilisateur de type 3 lettres. Je veux une fois une fois que j'ai toucher la liste de suggestion pour masquer le clavier.
Ce que j'ai fait ci-dessous avec la disposition de la table se cache le clavier en cliquant n'importe où, mais la liste de suggestion.
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 pour liste personnalisée
<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>
Le comportement que vous voulez de la force n'est pas ce que l'utilisateur attend. Mauvais de l'INTERFACE utilisateur...
Non, ce n'est pas le cas, l'utilisateur a cliqué sur l'élément souhaité. Pas besoin de clavier pour être visible
Je suis d'accord avec @Denny, l'utilisateur a fait un choix, cliquez sur le texte proposé. Par conséquent, l'utilisateur veut arrêter de taper.
Non, ce n'est pas le cas, l'utilisateur a cliqué sur l'élément souhaité. Pas besoin de clavier pour être visible
Je suis d'accord avec @Denny, l'utilisateur a fait un choix, cliquez sur le texte proposé. Par conséquent, l'utilisateur veut arrêter de taper.
OriginalL'auteur ChrisGeo | 2013-02-04
Vous devez vous connecter pour publier un commentaire.
Utilisation
OnItemClickListener
. Espérons que cela fonctionne 🙂Mis à JOUR
Utiliser cette
au lieu de
pourquoi est-ce accepté de répondre alors? noxo semble avoir obtenu ce droit.
Utilisez simplement... dans.hideSoftInputFromWindow(arg1.getApplicationWindowToken(), 0); À la place de...hideSoftInputFromWindow(arg1.getWindowToken(), 0);... 🙂
Merci beaucoup @chakriReddy Vous avez sauvé ma journée..
faire ce que @chakriReddy dit. a travaillé pour moi.
OriginalL'auteur
Comme chakri Reddy Suggéré:
Il travaille pour moi j'ai juste remplacé
ce:
avec:
au point.. Merci !
OriginalL'auteur Shylendra Madda
1) Changement AutoCompleteTextView déroulant hauteur de MATCH_PARENT
2) Rejeter clavier souple en substituant getView() de AutoCompleteTextView adaptateur
Utilisez simplement... imm.hideSoftInputFromWindow(typeTextView.getApplicationWindowToken(), 0); À la place de.. imm.hideSoftInputFromWindow(typeTextView.getWindowToken(), 0);... 🙂
OriginalL'auteur noxo
Trouvé ce bout de code dans un fil similaire. Espérons que cela aide:
Lien pour le post original. Notez que ce n'est pas la accepté de répondre.
OriginalL'auteur Carlos Borau
Dans le cas où cela peut aider n'importe qui, j'ai eu une situation similaire.
Mon AutoCompleteTextView a été affiché sur un DialogFragment avec pas de Barre de Titre parce que j'ai utilisé
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dansonCreateDialog()
J'ai ajouté la ligne suivante après
FEATURE_NO_TITLE
et de la liste des résultats affichés sur le clavier:OriginalL'auteur Alex
OriginalL'auteur Ashwin H
Essayer ce gars-là..Il va travailler..!!!
OriginalL'auteur chakri Reddy
J'ai utilisé le TextWatcher déjà à détecter lorsque l'utilisateur a tapé dans au moins 3 lettres (ce qui déclenche le téléchargement de l'API) comme suit:
OriginalL'auteur Someone Somewhere