可以自动完成 EditTextPreference 吗?
是否可以有一个带有自动完成功能的 EditTextPreference 附加到它?
我知道如何将一个 ArrayAdapter 附加到具有 id 的元素,但我无法弄清楚如何将 ArrayAdapter 附加到首选项字段。
这是错误的,但这是我能得到的最接近的结果。
final String[] TEAMS = getResources().getStringArray(R.array.teams);
AutoCompleteTextView EditTextPreference = (AutoCompleteTextView) findViewById(R.id.editTextPrefTeam);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, TEAMS);
EditTextPreference.setAdapter(adapter);
Is it possible to have an EditTextPreference with AutoComplete attached to it?
I know ho to attach one to an element with an id, but am having trouble figure out how to attach the ArrayAdapter to the preference field.
This is wrong, but it's as close as I can get.
final String[] TEAMS = getResources().getStringArray(R.array.teams);
AutoCompleteTextView EditTextPreference = (AutoCompleteTextView) findViewById(R.id.editTextPrefTeam);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, TEAMS);
EditTextPreference.setAdapter(adapter);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在我看来,必须有一种“更简单”的方法来完成此任务,而不是侵入 EditTextPreference 类并弄乱视图。这是我的解决方案,由于 AutoCompleteTextView 扩展了 EditText,我只需重写直接调用其常量 EditText 对象的 EditTextPreference 方法。
感谢布雷迪链接到来源。
It seemed to me there had to be an "easier" way to accomplish this than by hacking into the EditTextPreference class and messing with the view. Here's my solution, since AutoCompleteTextView extends EditText, I only had to override the EditTextPreference methods that call their constant EditText object directly.
Thanks to Brady for linking to the source.
这是我通过研究 EditTextPreference.java源代码。
本质上,您需要子类化 EditTextPreference 并在它绑定到对话框时进行覆盖。此时,您可以检索 EditText,复制其值,并将其从其父视图组中删除。然后注入 Autocompletetextview 并连接它的 Arrayadapter。
Here's a workaround I implemented by studying the EditTextPreference.java source code.
Essentially you need to subclass EditTextPreference and override when it binds to the dialog. At this point you can retrieve the EditText, copy it's values, and remove it from its parent view group. Then you inject your Autocompletetextview and hook up it's Arrayadapter.
也许如果您对其进行子类化并为此创建自己的视图并使用 AutoCompleteTextView 对象作为元素,它就会起作用,因为目前我不知道如何将简单的 EditText 更改为自动完成。
Probably if you subclass it and make your own view for that and use the AutoCompleteTextView object as element it will work, as currently I don't see how a simple EditText can be changed to autocomplete.