从变量中获取资源图像

Get resources images from variable

我有一个名为 Monster.class 的 class,其中包含字符串类型变量。

另一个 class MonsterAdapter.class 使用 getter 获取值并在 MyGridView 上设置。

它工作正常,但前提是我像这样设置图像手册:

imageView.setImageResource(R.drawable.a1);

(a1为图片名称)

如果我尝试使用这个:

final Monster m = monsters[position];
    String variableValue = m.getImg();
    imageView.setImageResource(getResources().getIdentifier(variableValue, "drawable", getPackageName()));

它说无法解析方法“getResources()”和“getPackageName()”,我只能导入引发错误的静态方法:

错误

如果您在 Adapter 中获取值,请按如下方式使用

imageView.setImageResource(context.getResources().getIdentifier(variableValue, "drawable", context.getPackageName())); 

您可以在适配器中为上下文创建对象并为其创建构造函数

示例:

public class YourAdapter extends BaseAdapter{
    Context mContext;

  public YourAdapter(Context context){
     this.mContext = context;
  }
}

你可以定义Context inner class MonsterAdapter

public class MonsterAdapter extends BaseAdapter{
 Context mContext;
 public MonsterAdapter(Context context, ...){
  this.mContext = context;
  ...
 }
}

那么你可以使用

imageView.setImageResource(mContext.getResources().getIdentifier(variableValue, "drawable", getPackageName()));