如果我正確理解你的問題,一個解決辦法是在您的佈局中的ImageView的,就像這樣:
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.history_list_item, cursor, new String[] { Tracks.SYMBOL,
Tracks._ID, Tracks.ACTIVITY },
new int[] { R.id.symbol, R.id.id, R.id.activity });
在上面的代碼中,Tracks.SYMBOL是具有資源標識的表列,而R.id.symbol是ImageView的標識。然後你必須實現SimpleCursorAdapter.ViewBinder接口並將你的實現設置到遊標適配器中。
在我們看到一個示例之前,我們需要考慮一下:遊標列Tracks.SYMBOL可以具有與R.drawable類中所需資源字段相同值的整數。這是不方便的,因爲這些字段是自動生成的,因此不會讓我們控制它們的值。一種解決方案是使用類字段名稱存儲字符串並使用反射來獲取字段值。
這裏是一個ViewBinder的一個例子被附接到所述先前定義的適配器:
與setViewValue方法
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
boolean binded = false;
if (view instanceof ImageView) {
int resourceId R.drawable.default_img;
String image = cursor.getString(columnIndex).trim();
try {
resourceId = R.drawable.class.getField(image).getInt(null);
} catch (NoSuchFieldException e) {
}
((ImageView) view).setImageResource(resourceId);
binded = true;
}
return binded;
}
});
的一點是,如果它返回false,則SimpleCursorAdapter將執行的方式它通常的結合確實。但是,如果該方法返回true,則SimpleCursorAdapter會認爲該作業已完成,並且不會嘗試再綁定該字段。
我剛開始使用Android編程。我在一個項目中做了這樣的事情,它運行良好。我不知道是否有更簡單的方法。
此致敬禮。
謝謝你的快速回答,我會用它:) – user1199476 2012-02-09 11:30:31
@ user1199476如果你有正確的答案只是打勾它。它爲未來的使用提供參考。 – 2012-09-28 10:25:09