Преобразовать строку в класс Activity - PullRequest
6 голосов
/ 30 октября 2011

Я пытаюсь создать класс Activity из строки и передать его статическому методу.Я нашел это на SO, чтобы передать строку в класс.FirstActivity уже создано.

SecondActivity

String myClass = "com.package.FirstActivity";
Class<?> myClass = Class.forName(myClass);
//this works
//Intent myIntent = new Intent(getApplicationContext(), myClass);
//I want to pass to a static method, but it gives a error. Class cannot cast to Activity
StaticMethod.processThis(myClass , "test");

StaticMethod

public static void processThis(Activity contextActivity, String str) {
     //do processing
}

Как мне заставить processThis работать?Если я правильно понимаю, Activity тоже класс?

1 Ответ

10 голосов
/ 30 октября 2011

Вам необходимо создать новый экземпляр FirstActivity. Если у этого класса есть конструктор без аргументов, вы можете сделать следующее:

String myClass = "com.package.FirstActivity";
Class<?> myClass = Class.forName(myClass);
Activity obj = (Activity) myClass.newInstance();
Intent myIntent = new Intent(getApplicationContext(), myClass); //Maybe here also obj must be needed

//Noe pass your object here
StaticMethod.processThis(obj, "test");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...