getText () retourne sur AutoCompleteTextView SpannableStringBuilder?
-
30-09-2019 - |
Question
J'ai un AutoCompleteTextView avec un MatrixCursor comme un adaptateur. Le AutoCompleteTextView a OnItemClickListener comme suit:
public class AutoCompleteListClickListner implements OnItemClickListener
{
private AutoCompleteTextView acView;
public AutoCompleteListClickListner(AutoCompleteTextView view)
{
this.acView = view;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
/* tv is the selected view in the dropdown */
TextView tv = (TextView) ((LinearLayout) view).getChildAt(0);
Log.d(AndroidLogTag, "Before:>>>>" + this.acView.getText().toString());
this.acView.setText(tv.getText().toString());
Log.d(AndroidLogTag, "After:>>>>" + this.acView.getText().toString());
}
}
Quand un élément est sélectionné, je vois suivant dans le journal
10-14 00:34:37.893: DEBUG/MyApp(19151): Before:>>>>android.database.MatrixCursor@4643e388
10-14 00:34:37.912: DEBUG/MyApp(19151): After:>>>>Ankit V Jain
Si vous voyez le journal, l'entrée du journal de Before
, le getText()
retourne un objet SpannableStringBuilder
et toString()
de celui-ci retourne un certain identificateur d'objet.
Comment puis-je obtenir le texte réel de la vue de remplissage automatique qui était là juste avant de cliquer sur déroulante article?
La solution 2
Eh bien, il y a toujours une autre façon (sale ou mieux) dans le code.
J'ai ajouté un TextWatcher
au AutoCompleteView et événement beforeTextChanged()
utilisé au contenu texte enregistrement et la réutilisation que dans onItemClick()
!
Autres conseils
essayez de caster SpannableStringBuilder
à CharSequence