我有以下代码,用于在我的应用中使用两个标签创建自定义ListView
:
package com.test.testing;
import android.content.Context;
import android.text.Html;
public class SetRows {
int image;
String name;
String id;
public int getImage () {
return image;
}
public void setImage (int image) {
this.image = image;
}
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public String getID () {
return id;
}
public void setID (String id) {
this.id = id;
}
public SetRows(int image, String name, String id) {
super();
this.image = image;
this.name = Html.fromHtml(getResources().getString(R.string.colorcol)) + " COLOR: \n\t" + name;
this.id = "MEANS: \n\t" + id;
}
}
以下一行:
this.name = Html.fromHtml(getResources().getString(R.string.colorcol)) + " COLOR: \n\t" + name;
给了我以下错误:
The method getResources() is undefined for the type SetRows
答案 0 :(得分:1)
您需要更改代码,以便引用当前上下文,从而使您可以访问getResources
。
例如
public SetRows(Context currentContext,int image, String name, String id) {
super();
this.image = image;
this.name = Html.fromHtml(currentContext.getResources().getString(R.string.colorcol)) + " COLOR: \n\t" + name;
this.id = "MEANS: \n\t" + id;
}
您必须将类的实例化更改为
contents.add(new SetRows(this,inIconShow, sColor, sExplain));
答案 1 :(得分:1)
当你这样做时
getResources()
意味着
this.getResources()
这里这个是SetRows(你的类)的一个实例, 而你的类SetRows没有名为getResources的方法。
这就是错误的含义。
答案 2 :(得分:1)
getResources()
是一种可用于扩展Context
类的所有类的方法。你的班级没有。
常见的解决方法是在创建context
对象时传递SetRows
的实例。
public SetRows(Context context, int image, String name, String id) {
super();
this.image = image;
this.name = Html.fromHtml(context.getResources().getString(R.string.colorcol)) + " COLOR: \n\t" + name;
this.id = "MEANS: \n\t" + id;
}
然后在您的活动中,您可以这样做:
new SetRows(this, /****/);
答案 3 :(得分:1)
通过构造函数传递Context
并调用:
context.getResources(...);