使用自定义列表适配器与AutoCompleteTextView,并仍然保持自动完成功能相同

xil*_*il3 5 java android autocomplete android-arrayadapter

所以说我使用以下适配器用于AutoCompleteTextView:

public class RosterAdapter extends ArrayAdapter<Player> {
...

}
Run Code Online (Sandbox Code Playgroud)

这是使用一个名为Player的对象,其中默认的AutoCompleteTextView使用String.

当我使用自定义列表时,列表显示正常,但我唯一的问题是当我开始输入内容时,它不会显示正确的内容.

例如-如果我开始打字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);
Run Code Online (Sandbox Code Playgroud)

这是使用通用的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);
Run Code Online (Sandbox Code Playgroud)

Ale*_*dam 6

没有任何代码,很难肯定地说,但我相信你可能没有实现getFilter()让你的适配器使用Player对象作为字符串.

有关示例(不相关的要求,但需要相同的过滤器),请参阅:如何使用AutoCompleteTextView并使用来自Web API的数据填充它?

这里有另一个例子:http://www.sacoskun.com/2008/08/autocompletetextview-with-simpleadapter.html