如何解决将自定义列表适配器与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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。