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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top