AutoCompletEteTextView Проблемы с пользовательским списком

StackOverflow https://stackoverflow.com/questions/4690307

Вопрос

Я пытаюсь создать 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! Проверьте ответ на мой вопрос Шон Лаузон.

Потребовалось некоторое время, чтобы правильно интегрироваться в систему поиска, но опыт намного лучше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top