2

AutoCompleteTextViewを使用してListActivityを作成しようとしています。Listviewには、ImageViewと2つのTextViewで構成されるlistItemsがあります。オートコンプリート文字列を除いて、すべてがうまく機能します。ArrayAdapterを使用していますが、文字列(COUNTRIES)を設定する方法がわかりません。ここにいくつかのコードがあります。

パブリッククラスSearchActivityは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;
    }
}

}

正しい方向に向けてください

/乾杯エイドリアン

4

2 に答える 2

1

あなたが見逃している重要なことは、実際に国の配列用のアダプターを作成することだと思います。

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初心者開発チュートリアル

于 2011-01-14T11:21:37.593 に答える
0

最近尋ねた質問を思い出しました。runQueryOnBackgroundThreadでListViewをフィルタリングしようとしましたが、何も起こりません。何が欠けていますか?。私の場合、検索文字列がテキストボックスに入力されたときに、リストの内容を更新するのに問題がありました。表面的にはそれはあなたと同じ問題ではありませんが、おそらくあなたは同じことを達成しようとしています。私は、人々が私のWorldInfoアプリの国を選択できるように検索アクティビティを作成しようとしていました。アイデアは、メインアクティビティで検索ボタンを押して、テキストボックスに入力することでフィルタリングできる国のリストを表示することでした。次に、希望する国を選択できます。

そのような機能がAndroidに組み込まれていることがわかりました!ShawnLauzonによる私の質問への回答を確認してください。

システム検索機能に適切に統合されるまでには少し時間がかかりましたが、エクスペリエンスははるかに優れています。

于 2011-01-14T11:29:30.900 に答える