Ich erstelle eine ListView, die zwei TextViews und ein ImageView enthält.Android übergibt Bild an eine ListView, die ein ImageView enthält
Ich übergebe Daten an meine SimpleAdapter mit einer Hashmap, also konvertiere ich die IDs der Bilder in eine Zeichenfolge und später im SimpleAdapter konvertiere ich sie wieder in Ganzzahlen, um die Bildressource zu setzen.
Das scheint jedoch nicht zu funktionieren.
Der entsprechende Code ist:
Die oncreate meiner Tätigkeit
clubImages = new Integer[] {
R.drawable.pic1, R.drawable.pic2,
R.drawable.pic3, R.drawable.pic4,
R.drawable.pic5
};
ListView lv = (ListView)findViewById(android.R.id.list);
// create the grid item mapping
String[] from = new String[] {"image"};
int[] to = new int[] {R.id.club_image};
// prepare the list of all records
List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>();
for(int i = 0; i < eventTitles.length; i++){
HashMap<String, String> map = new HashMap<String, String>();
map.put("image", getString(clubImages[i]));
fillMaps.add(map);
}
// fill in the grid_item layout
SimpleAdapter adapter = new MySimpleAdapter(this, fillMaps, R.layout.eventview_row, from, to);
lv.setAdapter(adapter);
die simpleadapter Klasse
public class MySimpleAdapter extends SimpleAdapter {
private List<HashMap<String, String>> results;
public MySimpleAdapter(Context context, List<HashMap<String, String>> data, int resource, String[] from, int[] to) {
super(context, data, resource, from, to);
this.results = data;
}
public View getView(int position, View view, ViewGroup parent){
Typeface type = Typeface.createFromAsset(getAssets(), "fonts/aircruiser.ttf");
View v = view;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.eventview_row, null);
}
mClubImageImageView = (ImageView) v.findViewById(R.id.club_image);
int ClubImageHelper = Integer.parseInt(results.get(position).get("image").toString());
mClubImageImageView.setImageResource(ClubImageHelper);
return v;
}
}
Der Fehler in meinem logcat
E/AndroidRuntime(19406): java.lang.NumberFormatException: unable to parse 'res/drawable-hdpi/pic1.png' as integer
helfen, das Problem ist, dass ich zu 2 Strings passieren, ich sie aus dem Code belassen, wie es irrelevant zu sein schien. Gibt es eine Möglichkeit, eine List> und eine List > an den SimpleAdapter zu übergeben? –
@MatsRaemen Ich habe meine Antwort bearbeitet, ich hoffe, dass dies das ist, was Sie wollen. – Luksprog
Das sieht genau so aus, was ich brauche, aber ich kann nicht herausfinden, wie man die Calues aus dem DataObject in der getView() -Methode bekommt. Wenn ich zum Beispiel eine TextView mEventTitleTextView habe und den Text dieser TextView auf den Wert von "First String" setzen möchte, wie soll ich das machen? mEventTitleTextView.setText (results.get (position) .get ("First String")); war kein großer Erfolg –