Estoy escribiendo una aplicación para Android 1.5. Quiero usar una vista de lista compleja para mostrar mis datos. Quiero mostrar una vista de imagen de un objeto dibujable en mi elemento de lista.¿Cómo puedo establecer drawable a un ListView en Android
lo aprendí de una demo:
------> listData.put("Img", listData.put("Img", R.drawable.XXX));
listData.put("Time", "100");
listItems.add(listData);
Se puede visualizar correctamente, sin embargo, quiero cambiar Img en tiempo de ejecución, La imagen quizás generada en tiempo de ejecución, por lo que cambiar el código como sigue, pero se cae. ¿Alguien puede ayudarme? ¡muchas gracias!
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.item_list);
itemListView = (ListView) findViewById(R.id.listview);
ArrayList<HashMap<String, Object>> listItems = new ArrayList<HashMap<String, Object>>();
for(int i = 0;i <XXX.size(); ++i) {
HashMap<String, Object> listData = new HashMap<String, Object>();
--------->/*1)*/ listData.put("Img", new Drawable(XXX));
/*2)*/ listData.put("Time", "100");
/*3)*/ listItems.add(listData);
}
SimpleAdapter listItemAdapter = new SimpleAdapter(this, listItems, R.layout.listitem, new String[] { "Img", "Time"}, new int[] { R.id.listitem_img, R.id.listitem_time });
itemListView.setAdapter(listItemAdapter);
}
listitem.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip">
<ImageView
android:id="@+id/listitem_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="12dip"/>
<TextView
android:id="@+id/listitem_time"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="20dip" />
</LinearLayout>