質問

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

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

}

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

/歓声エイドリアン

役に立ちましたか?

解決

あなたが欠けている重要なことは、国のアレイ用のアダプターを実際に作成することだと思います。

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チュートリアル

他のヒント

最近尋ねた質問を覚えていました runqueryonbackgroundthreadでlistViewをフィルタリングしようとしていますが、何も起こりません - 私は何が欠けていますか?. 。私の場合、検索文字列がテキストボックスに入力されたときに更新するようにリストの内容を取得するのに苦労していました。表面的には、それはあなたと同じ問題ではありませんが、おそらくあなたは同じことを達成しようとしているでしょう。私は、人々が私のworldinfoアプリの国を選択するのを支援するために、検索アクティビティを作成しようとしていました。アイデアは、メインアクティビティの検索ボタンを押し、テキストボックスに入力することでフィルタリングできる国のリストを表示することでした。その後、彼らは彼らが望む国を選択することができます。

そのような施設はAndroidに組み込まれていることがわかりました!私の質問への答えをチェックしてください ショーン・ラウゾン.

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top