Gibt es eine einfache Möglichkeit, ein 2 TextView Dropdown auf eine AutoCompleteTextView festzulegen.So fügen Sie einen benutzerdefinierten Adapter zu einer AutoCompleteTextView hinzu
Es gibt android.R.layout.two_line_list_item
Welche ich keine Beispiele finden konnte, wie man verwendet.
Also habe ich versucht, dies:
public class TwoLineDropdownAdapter extends BaseAdapter {
private LayoutInflater mInflater = null;
private Activity activity;
public ArrayList<TwoLineDropDown> values = new ArrayList<TwoLineDropDown>();
public TwoLineDropdownAdapter(Activity a, ArrayList<TwoLineDropDown> items) {
values = items;
activity = a;
mInflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return values.size();
}
public TwoLineDropDown getItem(int position) {
return values.get(position);
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder {
public TextView title;
public TextView description;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.dropdown_text_twoline,
parent, false);
holder.title = (TextView) convertView
.findViewById(R.id.text1);
holder.description = (TextView) convertView
.findViewById(R.id.text2);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
public void add(TwoLineDropDown ei) {
values.add(ei);
}
}
Aber ich vor einem Problem hier:
TwoLineDropdownAdapter AutoCompleteAdapter = new TwoLineDropdownAdapter(this, items);
myAutoComplete.setAdapter(AutoCompleteAdapter);
, während der Adapter Einstellung heißt es:
Gebundene Miss Übereinstimmung: Die generische Methode setAdapter (T) vom Typ AutoCompleteTextView gilt nicht für die Argumente (TwoLineDropdownAdapter). Der abgeleitete Typ TwoLineDropdownAdapter ist kein gültiger Ersatz für den beschränkten Parameter
Wie dieses Problem zu lösen?
danken Ihnen
Ich habe diese Methode angewendet, jedoch erscheint keine automatische Vervollständigung. – tony9099
können Sie überschreiben "erweitert ListAdapter & Filterable" zu BaseAdapter?, Sage ich: Adapter in Adapter? – delive
@delive Sie können "ListAdapter" mit der gewünschten Unterklasse ersetzen. – njzk2