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();
}
希望对您有所帮助
我想将 类 的列表存储在我的 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();
}
希望对您有所帮助