Допустим, я использую следующий адаптер для AutoCompleteTextView:
public class RosterAdapter extends ArrayAdapter<Player> {
...
}
Используется объект с именем Player, где по умолчанию AutoCompleteTextView работает со строкой.
Список отображается нормальнокогда я использую пользовательский, но единственная проблема, с которой я сталкиваюсь, - это когда я начинаю что-то печатать, это не отображает правильные вещи.
Например - если я начну печатать bo
, я бы ожидал, что людис именем Bob Henderson
, Garry Bobrinski
и т. д.
Но возникает тот же список, который, кажется, не имеет значения, что я печатаю - просто случайно появляется.
Могу ли я не использовать пользовательский объект для этой работы?Должен ли я использовать строку для него, чтобы соответствовать записи правильно?Или я каким-то образом могу сказать, чтобы он смотрел на конкретную строку для каждой записи?
* Обновление *
Вот еще немного кода - вот как яустановить пользовательский адаптер RosterAdapter
.Это работает, но автозаполнение не работает должным образом.Это почти так, как будто он запутался и не знает, что искать в объекте, чтобы соответствовать набранной строке.
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_players);
RosterAdapter adapter = new RosterAdapter(RosterActivity.this, R.layout.roster_row, players);
textView.setAdapter(adapter);
Это использует универсальный ArrayAdapter, и это прекрасно работает для сопоставления записей:
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_players);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(RosterActivity.this, R.layout.players_autocomplete, players);
textView.setAdapter(adapter);