我有一個ListView
,它有兩個TextViews
。我試圖動態地將背景圖像設置爲TextViews
之一。根據每個項目/行的類別,我要顯示大約18個不同的圖像。圖像被命名爲"abc1"
,"abc2"
,等這裏是我的自定義CursorAdapter
代碼:來自ListView/row的TextView上的動態背景圖像
private class MyListAdapter extends SimpleCursorAdapter {
public MyListAdapter(Context context, int layout, Cursor cursor, String[] from, int[] to) {
super(context, layout , cursor, from, to);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
// Get the resource name and id
String resourceName = "R.drawable.abc" + cursor.getString(7);
int resid = context.getResources().getIdentifier(resourceName,"drawable",context.getPackageName());
// Create the idno textview with background image
TextView idno = (TextView) view.findViewById(R.id.idno);
idno.setText(cursor.getString(3));
idno.setBackgroundResource(resid);
// create the material textview
TextView materials = (TextView) view.findViewById(R.id.materials);
materials.setText(cursor.getString(1));
}
}
當我在調試運行它,resid
總是返回0
這表明資源沒有被發現。 resourceName
看起來正確,ID:"R.drawable.abc1"
。我將圖像文件導入到res/drawable
文件夾中,並將它們列入R.java
。
這是正確的方式去做這件事還是有人有更好的解決方案嗎?
感謝您的答覆!我意識到,「R.drawable」可能是不必要的,因爲您必須傳遞哪些資源才能獲得:「drawable」。現在完美感覺! – wyoskibum
我將探索hashmap,但我必須手動初始化地圖,因爲數字必然是連續的。每條記錄的類別可以是1,即abc1,也可以是1.1,即abc11。 再次感謝。 – wyoskibum