Android AutoCompletetExtView и редактируемый Spinner
-
22-09-2019 - |
Вопрос
Вот мой сценарий: у меня есть база данных, где мне интересны 2 столбца. Теперь я создал AutoCompletetExtView, где адаптер GEHTS через SQL записи одного столбца.
Пока что ... так хорошо, но я на самом деле хочу, чтобы, если пользователь набирает sth. В автозаполняющем поле я замечаю это и получаю текст. Через SQL я сейчас хочу получить Everey столбец 2 где значение столбца 1 содержится в введенном тексте. И этот список должен отображаться в адаптере. Другими словами, я сам фильтровал данные через SQL, но я хочу, чтобы они были показаны в адаптере.Проблема в, что адаптер показывает только записи, которые начинаются с текста в автозаполнении, но я хочу показать адаптер в любое время, как уже Саид: я сам фильтрую данные, я просто хочу, чтобы адаптер отображался. Какой -нибудь ideo, как это решить? AutoCompletEteTextView правильным элементом для использования?
Я также думал об использовании простого прядильщика ... но при использовании спиннера есть 2 основные проблемы. Сначала я должен был сделать его редактируемым. И во -вторых, мне понадобился бы выпадающий список вместо «всплывающего окна». ...
Другая моя идея решить эту проблему - написать собственный фильтр для поля автозаполнения ... но я никогда не сбивался с этим, и я также не мог найти никаких примеров в Интернете для этого.
Спасибо за вашу помощь
Решение
Я изменил метод Spinner ArrayAdapter и получил свой собственный прядильщик. Просто измените параметр этого метода, как
Spinner spinner = (Spinner) findViewById(R.id.Spinner01);
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(This,R.array.statename,R.layout.mylayout);
spinner.setAdapter(adp);
В котором содержит файл mylayout
<EditText
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/spinnerTarget"
android:textColor="#FF8B1500"
android:gravity="center"
>
Другие советы
Вы можете использовать AutoCompletetExtView и установить его адаптер для ваших значений из SQLite или из строкового массива, как показано ниже:
String values[]= {"Orange","Apple","Pineapple"};
AutoCompleteTextView text=(AutoCompleteTextView)findViewById(R.id.a1);
text.setAdapter(new ArrayAdapter<String>
(this,android.R.layout.simple_dropdown_item_1line,values));
Для получения дополнительной информации об этом перейти к Сайт разработчиков