我是Android新手,我在使用代码资源中的String变量时出现问题。我尝试了在互联网和Android API指南中找到的几种解决方案,但他们在这种特定情况下没有工作,也可能是我没有正确使用它们。
更具体地说,我有一个Master / Detail流程活动,我想将资源字符串用作项目名称以用于多语言目的,但是我在恢复实际字符串时遇到问题。 我得到的错误是:
无法解决方法' getString()'
这是我的基于android studio虚拟文件的代码
public class Categories {
public static List<CatName> ITEMS = new ArrayList<CatName>();
static {
String temp = getString(R.string.cat_n1);
addItem(new CatName("1", temp);
}
private static void addItem(CatName item) {
ITEMS.add(item);
}
public static class CatName {
public String id;
public String name;
public FieldCat(String id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return name;
}
}}
答案 0 :(得分:0)
您需要指定资源。试试这个,
getResources().getString(R.string.cat_n1);
getString(int resId)
:从应用程序包的默认字符串表中返回一个本地化字符串。
getResources().getString(int id)
:返回与特定资源ID关联的字符串值。它将被删除任何样式的文本信息。
答案 1 :(得分:0)
尝试使用构造函数传递上下文并在该
上调用getstringpublic class Categories {
public static List<CatName> ITEMS = new ArrayList<CatName>();
public Categories(Context ct)
{
String temp = ct.getString(R.string.abc_action_bar_home_description);
addItem(new CatName("1", temp));
}
private static void addItem(CatName item) {
ITEMS.add(item);
}
public static class CatName {
public String id;
public String name;
public CatName(String id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return name;
}
}}