Android自动填充下拉列表

时间:2016-03-10 18:14:12

标签: android autocomplete

我已经在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) {
                        }

                    });

任何例子看??? 感谢

1 个答案:

答案 0 :(得分:0)

将自定义适配器视图与可过滤使用。 请参考以下链接: http://developer.android.com/reference/android/widget/Filterable.html