Ich versuche, ListActivity mit einem AutoCompleteTextView zu erstellen. Die Listview hat listItems, die aus einem ImageView und 2 TextViews besteht. Alles funktioniert gut, außer für die Autocomplete-Strings. Ich benutze einen ArrayAdapter, aber ich weiß nicht, wie man die Strings (COUNTRIES) setzt. Hier ist ein Teil des Codes.AutoCompleteTextView Probleme mit benutzerdefinierten Liste
public class SearchActivity erweitert 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;
}
}
}
Bitte mich
/Prost Adrian
Aber wenn ich es zu ArrayAdapter ändern wie kann ich die "ArrayList itemList;" zur Liste? –
Adrian
Vielleicht vermisse ich verstanden - Sie haben tatsächlich zwei Listen von Dingen, für die Sie Adapter benötigen: eine für die Liste und eine für die Auto-Vollansicht - habe ich das richtig? –
Mein schlechtes! Es scheint, dass ich den "searchListAdapter" sowohl der Liste als auch der textView hinzugefügt habe. Also wie du gesagt hast, brauche ich eigentlich einen Adapter für den TextView und einen Adapter für die Liste. Jetzt funktioniert es, aber die "vorgeschlagenen" Strings passen nicht in die visuelle Komponente, es wird halbiert. Aber ich muss wahrscheinlich eine neue Frage dafür stellen;). Vielen Dank! –
Adrian