Android-如何在res xml中存储类数组

时间:2019-06-16 01:06:17

标签: android arrays class typedarray

我想在我的res上的xml中存储类列表,因此我可以仅使用索引就可以在全局范围内使用它。

<resources>
    <array name="array_class">
        <class>Dashboard.class</class>
    </array>
</resources>

我的活动

int index = x; // i get the the index from database
TypedArray arrayClass = getActivity().getResources()
        .(R.array.array_class);
Class myClass = (Class) arrayClass.getString(index);

这使我出错,无法将String强制转换为Class。 是的,我知道,我不能那样做。那么如何在res上存储类数组的正确方法呢?或任何其他方法来全局调用Class []值?

1 个答案:

答案 0 :(得分:0)

在您的资源文件中,存储所有类的全名,包括包名

try {
    int index = x; // i get the the index from database
    TypedArray arrayClass = getActivity().getResources().(R.array.array_class);
    Class<?> act = Class.forName(arrayClass.getString(index));
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

然后在Java代码中,您可以通过以下方法进行检索

STUFF

希望有帮助