GetText () на AutoCompleTeTextView возвращает SpannableStringBuilder?
-
30-09-2019 - |
Вопрос
У меня есть AutoCompleTextView с MatrixCursor в качестве адаптера. AutoCompletEttextView имеет 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
Ну, всегда есть еще один путь (грязный или лучший) в коде.
Я добавил А. TextWatcher
на автозаказ и использованный beforeTextChanged()
событие для записи текстового контента и повторно использовать это в onItemClick()
!
Другие советы
попробуйте кастинг SpannableStringBuilder
к CharSequence