2011-01-14 1 views
2

AutoCompleteTextViewでListActivityを作成しようとしています。 ListViewには、ImageViewと2つのTextViewからなるlistItemsがあります。 オートコンプリート文字列を除いてすべてがうまくいきます。私はArrayAdapterを使用していますが、文字列(国)を設定する方法はわかりません。 ここにコードの一部を示します。AutoCompleteTextViewでカスタムリストの問題が発生する

パブリッククラスSearchActivityは{

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; 
    } 
} 

}

/乾杯エイドリアンは

答えて

1

は、私はあなたが不足している重要なことはすると思い正しい方向に私を指すくださいListActivityを拡張します実際には、国の配列のアダプタを作成します。

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); 

は、この例をチェックアウト:Auto Complete Text View | Android Beginner Dev Tutorial

+0

もしArrayAdapter に変更すれば、どのようにして "ArrayList itemList;"を追加することができますか?リストに? – Adrian

+0

おそらく私は理解できません - 実際には、あなたはアダプタが必要なものの2つのリストを持っています:1つはリストのためのものであり、もう1つは自動完全なビューのためのものです。 –

+0

私の悪い!リストとtextViewの両方に "searchListAdapter"を追加していたようです。あなたが言ったように、実際には、TextViewにはアダプタとListにはアダプタが必要です。今は動作しますが、 "提案された"文字列はビジュアルコンポーネントに収まらないので、半分にカットされます。しかし、おそらく私は新しい質問をする必要があります;)。ありがとう! – Adrian

0

を私はちょうど私が最近Trying to filter a ListView with runQueryOnBackgroundThread but nothing happens - what am I missing?を尋ねた質問を思い出しました。私の場合、検索文字列がテキストボックスに入力されたときにリストの内容を更新するのに問題がありました。表面上は、あなたと同じ問題ではありませんが、おそらくあなたは同じことを達成しようとしています。私はWorldInfoアプリの国を選ぶのに役立つ検索活動を作成しようとしていました。主な活動の検索ボタンを押して、テキストボックスに入力してフィルタリングできる国のリストを表示するという考えがありました。次に、彼らは彼らが望む国を選択することができます。

このような機能がAndroidに組み込まれていることが判明しました!私の質問への答えをShawn Lauzonで確認してください。

システム検索機能に適切に統合するにはしばらく時間がかかりましたが、その経験ははるかに優れています。

+0

nneed help http://stackoverflow.com/questions/29045738/customadapter-constructor-undefined –

関連する問題