2009-11-25 3 views
0

Вот мой сценарий: у меня есть база данных, где мне интересны 2 столбца. Теперь я создал autocompletetextview, где адаптер передает через SQL записи одного столбца.Android Autocompletetextview и редактируемый счетчик

До сих пор ... так хорошо, но на самом деле я хочу, чтобы, если пользователь вводит sth. в поле автозаполнения я замечаю это и извлекаю текст. Через SQL я теперь хочу получить everey Entry столбец 2, где значение столбца 1 содержится во введенном тексте. И этот список должен отображаться в адаптере. Другими словами, я фильтрую данные самостоятельно через sql, но я хочу, чтобы они отображались в адаптере. Проблема:, что адаптер показывает только те записи, которые начинаются с текста в поле автозаполнения, но я хочу показать адаптер в любое время, как уже было сказано: я сам фильтрую данные, я просто хочу, чтобы адаптер отображал их. Любое видео, как это решить? Является ли AutocompleteTextView правильным элементом?

Я также подумал об использовании простого Spinner ... но при использовании счетчика есть две основные проблемы. сначала я должен был сделать его редактируемым. и второй мне понадобится выпадающий список вместо «всплывающего окна». ...

Другая идея для решения этой проблемы - написать собственный фильтр для поля автозаполнения ... но я никогда не делал этого до сих пор, и я также не мог найти примеров в Интернете, чтобы Сделай так.

спасибо за вашу помощь

ответ

1

Я изменил метод ArrayAdapter фильеры и я получил свой обычай Spinner. просто изменить параметр этого метода, как

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" 
> 
1

Вы можете использовать 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)); 

для получения дополнительной информации о ней идти к developers site

Смежные вопросы