#android #android-activity #android-intent #classnotfoundexception
#Android #android-активность #android-намерение #classnotfoundexception
Вопрос:
Когда я хочу начать новое действие, я использую этот код:
Intent myIntent1 = new Intent(this, Info1.class);
startActivity(myIntent1);
Но, как насчет случая, я получаю имя класса из строкового массива? Я пробовал метод class.forName следующим образом:
Intent intent = new Intent(this, Class.forName(array[1]));
startActivity(intent);
Но безуспешно. Это выдает мне ошибку
java.lang.Исключение ClassNotFoundException: Info1 в загрузчике dalvik.system.PathClassLoader
несмотря на то, что в первом случае он успешно запустил действие. Я должен добавить, что я на 100% уверен, что array [1] содержит строку «Info1» и что у меня есть Info1.class в моем пакете.
Знаете ли вы, как это решить?
Ответ №1:
Метод
Class.forName("xxxxx");
Требуется полное имя, что означает, что вы должны указать имя вместе с деталями пакета (в каком пакете существует класс)
в качестве примера
Class.forName("com.mypackage.MyClass");
Ответ №2:
Вам нужно добавить полное имя пакета к вашему параметру class.forName, например, ple вместо array[1] .
Ответ №3:
Попробуйте следующее:
Class clazz = Thread.currentThread().getContextClassLoader().findClass(array[1]);
new Intent(this, clazz);