Android - Как сохранить массив классов в Res XML - PullRequest
0 голосов
/ 16 июня 2019

Я хочу сохранить список классов в 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 к классу. Да, я знаю, я не могу этого сделать. Итак, как правильно хранить массив классов на res? или любой альтернативный способ вызова значения Class [] глобально ??

1 Ответ

0 голосов
/ 16 июня 2019

В вашем хранилище файлов ресурсов полное имя всех классов, включая имя пакета

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

Надеюсь, это поможет

...