我已经在Android应用中以这种方式实现了自动完成textview:
String countries[] = { "Roma", "Arcinazzo Romano", "Bagnara di Romagna", "Bagno di Romagna", "Barbarno Romano",
"INDONESIA", "UK", "Campagnano di Roma", "Bassano Romano" };
private ArrayAdapter<String> adapter1;
edittext_city = (AutoCompleteTextView) getView().findViewById(R.id.edittext_city);
adapter1 = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, countries);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
edittext_city.setThreshold(3);
edittext_city.setMaxLines(1);
edittext_city.setAdapter(adapter1);
edittext_city.getCompletionHint();
自动完成工作正常但是当我在结果列表中写“Roma”时显示“Roma”值以及字符串中具有字母'roma'的数组的另一个元素。 为什么?如果我写入数组中的特定字符串,结果必须是唯一的一个字符串。 我怎么解决这个问题?
由于
感谢您的重播我已经更改了我的代码以读取db的值,我已经尝试实现您的想法,但没有结果。这是新代码:
edittext_city = (AutoCompleteTextView)getView().findViewById(R.id.edittext_city);
if(FirstProjectApplication.allComunesName.size() == 0)
{
DBProvider provider = new DBProvider(getActivity());
database_comune_dao comune_dao = new database_comune_dao(provider.getDb());
FirstProjectApplication.allComunesName = comune_dao.getAllComuneName();
provider.close();
}
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,FirstProjectApplication.allComunesName);
adapter.setDropDownViewResource(android.R.layout.simple_list_item_1);
edittext_city.setAdapter(adapter);
edittext_city.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable editable) {
}
public void beforeTextChanged(CharSequence charsequence, int j, int k, int l)
{
}
public void onTextChanged(CharSequence charsequence, int j, int k, int l) {
}
});
任何例子看??? 感谢
答案 0 :(得分:0)
将自定义适配器视图与可过滤使用。 请参考以下链接: http://developer.android.com/reference/android/widget/Filterable.html