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

Android - How to store array of classes in res xml

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

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

在我的 activity

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[] 值的任何替代方法??

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

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

希望对您有所帮助