Android - начать намерения - PullRequest
       15

Android - начать намерения

3 голосов
/ 13 октября 2011

Когда я хочу начать новую деятельность, я использую этот код:

Intent myIntent1 = new Intent(this, Info1.class);
startActivity(myIntent1);

Но как насчет случая, я получаю имя класса из String Array? Я пробовал метод class.forName, как это:

Intent intent = new Intent(this, Class.forName(array[1]));
startActivity(intent);

Но безуспешно. Это дает мне ошибку

java.lang.ClassNotFoundException: Info1 в загрузчике dalvik.system.PathClassLoader

, хотя в первом случае он успешно начал работу. Я должен добавить, что я уверен на 100%, что массив [1] содержит строку «Info1» и что в моем пакете Info1.class.

Вы знаете, как это решить?

Ответы [ 3 ]

3 голосов
/ 13 октября 2011

Метод

Class.forName("xxxxx");

Требуется полное имя, что означает, что вы должны дать имя вместе с деталями пакета (в каком пакете существует класс)

в качестве примера

Class.forName("com.mypackage.MyClass");

Ссылка на документацию здесь

1 голос
/ 13 октября 2011

Вам необходимо добавить полное имя пакета в ваш параметр class.forName, например ple вместо array [1].

1 голос
/ 13 октября 2011

Попробуйте следующее:

Class clazz = Thread.currentThread().getContextClassLoader().findClass(array[1]);
new Intent(this, clazz);
...