Domanda

Ho un AutoCompleteTextView con un MatrixCursor come un adattatore. L'AutoCompleteTextView ha un'OnItemClickListener come segue:

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());
    }
}

Quando si seleziona un elemento che vedo seguente nel registro

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

Se si vede il registro, la voce di registro Before, il getText() restituisce un oggetto SpannableStringBuilder e toString() di restituisce un po 'di identificatore di oggetto.

Come faccio ad avere il testo vero e proprio della visione di completamento automatico che era lì solo prima di fare clic discesa articolo?

È stato utile?

Soluzione 2

Beh, c'è sempre un altro modo (sporco o migliore) nel codice.

ho aggiunto un TextWatcher al AutoCompleteView e l'evento beforeTextChanged() utilizzato per registrare il contenuto del testo e il riutilizzo che nel onItemClick()!

Altri suggerimenti

Prova a trasmettere SpannableStringBuilder a CharSequence

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top