问题描述
|
所以说我对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