Использование пользовательского адаптера списка с AutoCompleteTextView и сохранение функциональности автозаполнения

Допустим, я использую следующий адаптер для 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);
5
задан xil3 24 May 2011 в 21:30
поделиться