我正在尝试从一个字符串创建一个 Activity
类并将它传递给一个静态方法。我在 SO 上找到了将字符串传递给类的方法。 FirstActivity
已创建。
第二个 Activity
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");
静态方法
public static void processThis(Activity contextActivity, String str) {
//do processing
}
如何让 processThis
工作?如果我没理解错的话,一个Activity
也是一个类?
最佳答案
您需要创建一个新的 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");
关于java - 将 String 转换为 Activity 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7941378/