0

我想在我的 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[] 值?

4

1 回答 1

0

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

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

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

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();
}

希望能帮助到你

于 2019-06-16T05:06:27.070 回答