J'ai un AutoCompleteTextView dans un fragment (android.support.v4.app). Une fois que l'utilisateur a sélectionné un élément dans la liste déroulante, je souhaite conserver le texte entré. Voici ce que j'ai.Impossible d'obtenir le texte saisi par l'utilisateur depuis android AutoCompleteTextView after item selected
D'abord la définition de la classe:
public class MyFragment extends Fragment
implements
AutoCompleteTextView.OnDismissListener,
AutoCompleteTextView.OnKeyListener,
AutoCompleteTextView.OnEditorActionListener {
En onViewCreated() J'ai ces missions:
myAutoComplete.setOnDismissListener(MyFragment.this);
myAutoComplete.setOnKeyListener(MyFragment.this);
myAutoComplete.setOnEditorActionListener(MyFragment.this);
Et j'ai ajouté ces méthodes:
@Override
public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
Log.i("************(arg0) ", arg0.toString());
Log.i("************(arg1) ", arg0.toString());
Log.i("***********(keyevent) ", arg2.toString());
return false;
}
@Override
public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
Log.i("************(arg0) ", arg0.toString());
Log.i("************(arg1) ", arg0.toString());
Log.i("***********(keyevent) ", arg2.toString());
return false;
}
@Override
public void onDismiss() {
// Fires when the dropdownlist is dismissed.
// The event is assigned in onViewCreated
}
Mon premier espoir était que l'événement onDismiss() se déclencherait avant que le texte entré par l'utilisateur soit remplacé par l'élément sélectionné. L'événement, comme indiqué, se déclenche correctement, mais après que le texte des utilisateurs a été remplacé par l'élément sélectionné.
J'ai ensuite câblé deux écouteurs de clés différents, dans l'espoir de capturer et de stocker la valeur pendant la saisie. Ceux-ci ne tirent pas. Après avoir étudié ce problème, j'ai appris que les auditeurs principaux étaient uniquement conçus pour travailler sur des claviers physiques. Bien que certaines personnes semblent l'avoir fait fonctionner avec des kybds souples, une large compatibilité semble être un problème.
Alors je suis coincé, et je n'ai plus de cheveux. Quelqu'un a des suggestions?
pourquoi ne pas essayer TextWatcher et enregistrer le texte entré dans une chaîne temporaire –