-1

美好的一天,我想知道或寻求帮助。我很难从我的应用程序的 string.xml 中获取字符串值。我通过 Arraylist 访问它(在一个单独的 java 文件中。arraylist 不在活动或片段内)。

我尝试了 String.valueOf 和 Integer.toString (请参阅下面的 ss):

在此处输入图像描述

但两者的结果是相同的(请参阅下面的ss):

在此处输入图像描述

左边的项目应该是我的 string.xml 中的字符串值,但我不知道如何以及为什么。我也试过 Resources.getString 但它使应用程序崩溃。

你知道我可以尝试解决这个问题吗?谢谢您,非常感谢您花时间回答我的问题。

编辑:这是代码(请参阅下面的 ss),我也尝试了 getString() 建议。 在此处输入图像描述

对不起,我真的不擅长发展,但我愿意倾听和学习。

4

1 回答 1

1

为您的函数添加一个context参数:

public static ArrayList<CategoryObject> getCategories(Context context) {
    final ArrayList<CategoryObject> categoryObjects = new ArrayList<>();
    final Resources resources = context.getResources();

    CategoryObject categoryObject = new CategoryObject();
    categoryObject.setCategoryTitle(resources.getString(R.string.psi));
    categoryObject.setItem1(resources.getString(R.string.psi1));
    categoryObject.setItem2(resources.getString(R.string.psi2));
    categoryObject.setItem3(resources.getString(R.string.psi3));
    categoryObject.setItem4(resources.getString(R.string.psi4));

    categoryObjects.add(categoryObject);

    return categoryObjects;
}

请注意,我将您的 ArrayList 变量名称更改为使用 Java 的 camelCase 标准(CategoryObjects--> `categoryObjects)。

然后你只需要传递一个 Context 对象给它。

从一个活动:

Category.getCategories(this);

从一个片段:

Category.getCategories(getActivity());

以后,请将您的代码粘贴为text。这实际上比截屏要容易得多。

于 2018-10-21T15:57:33.547 回答