2010-10-13 2 views
0

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

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:>>>>[email protected] 
10-14 00:34:37.912: DEBUG/MyApp(19151): After:>>>>Ankit V Jain 

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

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

ответ

0

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

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

0

попробовать литье SpannableStringBuilder в CharSequence

Смежные вопросы