我正在尝试使用AutoCompleteTextView创建ListActivity。 ListView具有由imageView和2个文本视图组成的ListItems。除了自动完成字符串外,一切都很好。我正在使用阵列式制品,但我不知道如何设置字符串(国家)。这是一些代码。

公共类搜索性扩展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初学者开发教程

其他提示

我只是想起了我最近问的一个问题 尝试使用RunqueryOnbackgroundThread过滤列表视图,但什么也没发生 - 我缺少什么?. 。就我而言,当将搜索字符串输入文本框时,我很难将列表的内容刷新。从表面上看,它与您的问题不是同一问题,但也许您正在尝试完成同一件事。我试图创建搜索活动,以帮助人们为我的WorldInfo应用程序选择一个国家。这个想法是他们按主活动中的搜索按钮,并查看可以通过输入文本框来过滤的国家列表。然后他们可以选择想要的国家。

事实证明,Android内置了这样的设施!通过查看我的问题的答案 肖恩·劳宗(Shawn Lauzon).

花了一些时间才能正确整合到系统搜索设施中,但是体验要好得多。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top