2

(res / drawableに画像があり、データベースに画像の名前があります)res / drawableからlistviewに画像を表示しましたが、画像は同じ画像で表示されます。他の画像との違いの画像を表示したいです。

ドローアブルフォルダから画像IDを変更する方法(setImageResource()を使用)。ドローアブルフォルダに複数の画像が含まれていますが、すでに保存されているデータベースの名前を使用してこれらの画像を変更したいと思います。

これがチュートリアルの私のコードです...

//データベースからの結果(image2.jpg)

public KontakItemListBaseAdapter(Context context, ArrayList<KontakItemDetails> results) {
    itemDetailsrrayList = results;
    l_Inflater = LayoutInflater.from(context);
}

public int getCount() {
    return itemDetailsrrayList.size();
}

public Object getItem(int position) {
    return itemDetailsrrayList.get(position);
}

public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) {
    try{
    ViewHolder holder;
    if (convertView == null) {
        convertView = l_Inflater.inflate(R.layout.kontak_details_view, null);
        holder = new ViewHolder();
        holder.txt_itemName = (TextView) convertView.findViewById(R.id.name);
        holder.txt_itemDescription = (TextView) convertView.findViewById(R.id.itemDescription);
        holder.itemImage = (ImageView) convertView.findViewById(R.id.photo);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    holder.txt_itemName.setText(itemDetailsrrayList.get(position).getName());
    holder.txt_itemDescription.setText(itemDetailsrrayList.get(position).getItemDescription());


    holder.itemImage.setImageResource(R.drawable.iddy);

    }catch (Exception ex) {
        throw new Error("kontakitemlistadapter :"+ex.toString());

    }
    return convertView;
}

static class ViewHolder {
    TextView txt_itemName;
    TextView txt_itemDescription;
    TextView txt_itemPrice;
    ImageView itemImage;
}

私の問題はここにあると思います。

holder.itemImage.setImageResource(R.drawable.iddy);

R.drawable.iddyをパス名に変更する方法は??

4

2 に答える 2

1

次のように配列内のすべての Drawables id を取得できます。

private Integer[] images;

Field[] list = R.drawable.class.getFields();
int count = 0, index = 0, j = list.length;

images = new Integer[count];
try {
   for(int i=0; i < j; i++)
    images[index++] = list[i].getInt(null);
 } catch(Exception e) {}

アダプタの getView メソッドで Image src を次のように設定するために images Array を使用するようになりました。

holder.itemImage.setImageResource(images[position]);
于 2013-01-12T03:10:11.167 に答える
0

コンテキストに基づいてドローアブル参照を変更する

holder.itemImage.setImageResource(R.drawable.iddy);
于 2013-01-12T03:09:26.593 に答える