AutoCompletEteTextView Проблемы с пользовательским списком
-
11-10-2019 - |
Вопрос
Я пытаюсь создать Listactivity с помощью AutoCompletetExtView. В ListView есть списки, которые состоит из ImageView и 2 TextView. Все работает хорошо, за исключением автозаполненных строк. Я использую ArrayAdapter, но я не знаю, как установить строки (страны). Вот некоторые из кода.
Public Class SearchActivity Extends ListActivity {
static final String[] COUNTRIES = new String[] {
"Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
"Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
"Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
"Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
"Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
"Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
"British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
"Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
"Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
"Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
"Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic"
};
private AutoCompleteTextView searchView;
private ListView mListView;
private ArrayList<MyItem> itemList = new ArrayList<MyItem>();
private ListItemAdapter searchListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.search);
searchView = (AutoCompleteTextView) findViewById(R.id.search_text);
searchView.setAdapter(searchListAdapter);
searchListAdapter = new ListItemAdapter(this, R.layout.search_row, itemList);
setListAdapter(searchListAdapter);
mListView = getListView();
mListView.setTextFilterEnabled(false);
}
/**
* This class is used to for the list objects.
*/
private class ListItemAdapter extends ArrayAdapter<MyItem> {
private ArrayList<MyItem> bevs;
private MyItem bevItem;
private TextView nameView;
private TextView descView;
private ImageView imageView;
public ListItemAdapter(Context context, int textViewResourceId,
ArrayList<MyItem> itemList) {
super(context, textViewResourceId, itemList);
this.bevs = itemList;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
/* Update the views */
return view;
}
}
}
Пожалуйста, укажите мне в правильном направлении
/Приветствую Адриан
Решение
Я думаю, что вам не хватает важно, чтобы на самом деле создать адаптер для массива стран.
ArrayAdapter<String> autocompleteCountriesAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, COUNTRIES);
Затем измените свой код для полного текстового представления, чтобы использовать его:
searchView = (AutoCompleteTextView) findViewById(R.id.search_text);
searchView.setAdapter(autocompleteCountriesAdapter);
Проверьте этот пример: Автопочный текстовый просмотр | Учебник для начинающих Android Dev
Другие советы
Я только что вспомнил вопрос, который недавно задал Попытка отфильтровать ListView с помощью Runqueryonbackgroundthread, но ничего не происходит - что мне не хватает?. Анкет В моем случае у меня возникли проблемы с тем, чтобы получить содержимое списка, чтобы обновить, когда строка поиска была введена в текстовое поле. На первый взгляд это не та же проблема, что и ваша, но, возможно, вы пытаетесь сделать то же самое. Я пытался создать поисковую деятельность, чтобы помочь людям выбрать страну для моего приложения WorldInfo. Идея заключалась в том, что они нажимают кнопку поиска в основной деятельности и видят список стран, которые затем могут фильтровать, введя в текстовое поле. Тогда они могут выбрать страну, которую хотят.
Оказывается, такой объект встроен в Android! Проверьте ответ на мой вопрос Шон Лаузон.
Потребовалось некоторое время, чтобы правильно интегрироваться в систему поиска, но опыт намного лучше.