我有一个名为 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()”而且我只能导入静态方法,并抛出错误:
错误
答案 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()));