将自定义列表适配器与AutoCompleteTextView一起使用,并且仍然保持自动完成功能不变

问题描述

| 所以说我对AutoCompleteTextView使用以下适配器:
public class Rosteradapter extends ArrayAdapter<Player> {
...

}
那使用的是名为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);
这使用的是通用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);
    

解决方法

很难确定没有任何代码,但是我相信您可能并没有实现
getFilter()
以使适配器将
Player
对象用作字符串。 有关示例(不相关的要求,但需要相同的过滤器),请参见:如何使用AutoCompleteTextView并使用来自Web API的数据填充它? 这里还有另一个示例:http://www.sacoskun.com/2008/08/autocompletetextview-with-simpleadapter.html