从变量获取资源图像

时间:2018-02-22 09:08:53

标签: android adapter android-resources android-image

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

另一个类 MonsterAdapter.class 使用getters获取值并在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()”而且我只能导入静态方法,并抛出错误:

enter image description here

错误

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您在Adapter中获取值,请使用如下所示

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

您可以在适配器中为Context创建Object,并为其创建构造函数

示例:

public class YourAdapter extends BaseAdapter{
    Context mContext;

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

答案 1 :(得分:1)

您可以定义Context内部类MonsterAdapter

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

然后你可以使用

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