ビューに AutoCompleteTextView をアタッチし、ArrayAdapter を使用してアイテムのリストを作成しました。しかし、AutocompleteTextView ドロップダウンの項目にヘッダーとフッター ビューを追加する方法がわかりません。
リストビューにヘッダーとフッターを追加できることは知っています。
助言がありますか ?
AutoCompleteTextView では、DropDownListView に直接アクセスできないため、そこにヘッダー ビューとフッター ビューを追加できません。
問題の解決策は、リストで 2 種類のビューを使用し、最初/最後の行をヘッダー/フッターのレイアウトに設定することです。これは、自分で作成したアダプタで実行できます。
リスト ビューの行ごとに異なるレイアウトを提供する方法に関する情報を次に示します。 行ごとに異なるレイアウトの Android ListView
Android は、ListView のヘッダーとフッターを定義するために、addHeaderView(View v) や addFooterView(View v) などのメソッドを提供しました。
あなたの質問に対する答えを見つけるために、Android: Adding static header to top of a ListActivity を参照できます。
幸運を!
private class PlacesAutoCompleteAdapter extends ArrayAdapter<String> implements Filterable {
private ArrayList<String> resultList;
public PlacesAutoCompleteAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
@Override
public int getCount() {
return resultList.size();
}
@Override
public String getItem(int index) {
return resultList.get(index);
}
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if (constraint != null) {
// Retrieve the autocomplete results.
resultList = autocomplete(constraint.toString());
// Assign the data to the FilterResults
filterResults.values = resultList;
filterResults.count = resultList.size();
}
return filterResults;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
if (results != null && results.count > 0) {
notifyDataSetChanged();
}
else {
notifyDataSetInvalidated();
}
}};
return filter;
}
}
オートコンプリート関数は文字列の配列リストを返す必要があります