Derzeit habe ich eine Standard-Listview angezeigt Namen aus einem Arraylist
JavaClassName. Ich wollte einen Imageview in die Listenansicht implementieren, damit ich und versuchte Methoden aus diesen 2 Links gelesen haben:
Android Custom Listview with Image and Text using ArrayAdapter
Android Custom ListView with Images and Text – ExampleAndroid Angepasste ListView und ArrayList
Ich habe Probleme aus ihrer String[]
und Integer[]
in ihren jeweiligen CustomList
Klassen in meine eigene Umwandlung ArrayList
als Das Bild und der Name werden in diesem Arraylist
gespeichert. Meine ArrayList
bestehen auch aus anderen Daten, aber ich brauche nur Daten zu erhalten, die in der angepassten ListView
angezeigt werden.
Edits/Add on:
private final Activity context;
private final String[] itemname;
private final Integer[] imgid;
public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid) {
super(context, R.layout.mylist, itemname);
// TODO Auto-generated constructor stub
this.context=context;
this.itemname=itemname;
this.imgid=imgid;
}
public View getView(int position,View view,ViewGroup parent) {
LayoutInflater inflater=context.getLayoutInflater();
View rowView=inflater.inflate(R.layout.mylist, null,true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.item);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
TextView extratxt = (TextView) rowView.findViewById(R.id.textView1);
txtTitle.setText(itemname[position]);
imageView.setImageResource(imgid[position]);
extratxt.setText("Description "+itemname[position]);
return rowView;
};
Ich habe eng mit einem der Links versehen folgte eine customAdapter zu erstellen. Und das ist es, was ich in den MainActivity
final ArrayList<JavaClassName> arrayListName = new ArrayList<JavaClassName>();
arrayListName.add(new JavaClassName(R.drawable.icon1, "name", "info", "info", "info"));
arrayListName.add(new JavaClassName(R.drawable.icon2, "name", "info", "info", "info"));
final ArrayList<String> itemName = new ArrayList<String>();
for(int i=0; i<arrayListName.size(); i++){
String name = arrayListName.get(i).getName().toString();
itemName.add(name);
};
CustomAdapter adapter = new CustomAdapter>(this, android.R.layout.simple_list_item_1, itemName);
listView.setAdapter(adapter);
Wie kann ich passe die String [] und Integer [] aus der CustomAdapter Klasse in die CustomAdapter adapter = new CustomAdapter> (dies, android.R.layout.simple_list_item_1 , Artikelname);?
Möchten Sie Ihren Code teilen und erklären, was passiert? – aribeiro
'adapter = neuer ArrayAdapter (das ist android.R.layout.simple_list_item_1, arrayListName);' das ist mein aktueller Adapter.Die angegebenen 2 Links verwenden diesen Adapter, der 2 Arrays übergibt: 'CustomListAdapter adapter = new CustomListAdapter (this, itemname, imgid);' Also wie kann ich Änderungen vornehmen, um das Bild und den Namen von meiner Arraylist in den customListAdapter zu bekommen, ohne weitere 2 zu erstellen Arrays? –
Alvin
Sie müssen einen benutzerdefinierten Adapter erstellen, der die Sammlungen akzeptiert, die Sie zum Füllen der Daten in der Liste erstellt haben, um eine benutzerdefinierte Listenansicht zu erstellen. Stellen Sie dazu den Code in der Frage zur Verfügung, damit Sie helfen können. –