Pregunta

Tengo una AutoCompleteTextView con un MatrixCursor como un adaptador. El AutoCompleteTextView tiene una OnItemClickListener como sigue:

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

Cuando se selecciona un elemento veo siguiente en el 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

Si ve el registro, la entrada de registro Before, la getText() devuelve un objeto SpannableStringBuilder y toString() de que devuelve parte identificador de objeto.

¿Cómo llego texto real de la vista de autocompletar que estaba allí justo antes de hacer clic desplegable artículo?

¿Fue útil?

Solución 2

Bueno, siempre hay otra manera (sucio o mejor) en el código.

He añadido una TextWatcher a la AutoCompleteView y eventos beforeTextChanged() utilizado para el contenido de texto de grabación y reutilización que, en onItemClick()!

Otros consejos

lanzarlo SpannableStringBuilder a CharSequence

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top