私はListView
に2つのTextViews
を持っています。背景画像をTextViews
のいずれかに動的に設定しようとしています。私は各項目/行のカテゴリーに応じて表示したい約18種類の画像を持っています。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
を返します。画像がここに私のカスタムCursorAdapter
ためのコードがある"abc1"
、"abc2"
、などの名前が付けられresourceName
は正しく見えます。ID:"R.drawable.abc1"
。画像ファイルをres/drawable
フォルダにインポートしたところ、R.java
にリストされています。
これは正しいことですか、誰かがより良い解決策を持っていますか?
ありがとう:
次に
bindView
方法で返される配列を使用します!私は、 "drawable"を得るためにどのリソースを渡す必要があるので、 "R.drawable"はおそらく不要であることに気付きました。今、完璧な意味合いがあります! – wyoskibum私はハッシュマップを探検しますが、数字は必ず逐次的であるため、マップを手動で初期化する必要があります。各レコードのカテゴリは、abc1である1、またはabc11である1.1である可能性があります。もう一度ありがとうございます。 – wyoskibum