カスタムリストのAutoCompleTeTextViewの問題
-
11-10-2019 - |
質問
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に組み込まれていることがわかりました!私の質問への答えをチェックしてください ショーン・ラウゾン.
システム検索機能に適切に統合されるのに時間がかかりましたが、エクスペリエンスははるかに優れています。