getText () для AutoCompleteTextView возвращает SpannableStringBuilder? - PullRequest
0 голосов
/ 13 октября 2010

У меня есть AutoCompleteTextView с MatrixCursor в качестве адаптера. AutoCompleteTextView имеет OnItemClickListener следующим образом:

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

Когда выбран элемент, я вижу следующее в журнале

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

Если вы видите журнал, запись журнала Before, getText() возвращает объект SpannableStringBuilder, а toString() его возвращает некоторый идентификатор объекта.

Как получить фактический текст представления автозаполнения, который был там непосредственно перед щелчком по раскрывающемуся элементу?

Ответы [ 2 ]

0 голосов
/ 16 октября 2010

Ну, всегда есть другой способ (грязный или лучший) в коде.

Я добавил TextWatcher в AutoCompleteView и использовал событие beforeTextChanged() для записи текстового содержимого и его повторного использования в onItemClick()!

0 голосов
/ 14 октября 2010

попробуйте наложить SpannableStringBuilder на CharSequence

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...