使用List中资源的字符串。

时间:2015-06-02 15:40:31

标签: java android android-studio android-resources

我是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;
    }
}}

2 个答案:

答案 0 :(得分:0)

您需要指定资源。试试这个,

getResources().getString(R.string.cat_n1);

getString(int resId):从应用程序包的默认字符串表中返回一个本地化字符串。

getResources().getString(int id):返回与特定资源ID关联的字符串值。它将被删除任何样式的文本信息。

答案 1 :(得分:0)

尝试使用构造函数传递上下文并在该

上调用getstring
public 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;
}
}}