【问题标题】:Convert a String to an Activity class将字符串转换为 Activity 类
【发布时间】:2011-12-17 23:43:56
【问题描述】:

我正在尝试从字符串创建Activity 类并将其传递给静态方法。我在 SO 上发现了这个,可以将一个字符串传递给一个类。 FirstActivity 已创建。

第二个活动

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 也是一个类?

【问题讨论】:

  • 您的问题到底是什么?您是想解决应用程序中的某个问题还是想让上面的代码工作?
  • 我想让我的processThis 方法工作。让我的问题更清楚。
  • 如何投射?我试过Activity newActivity = (Activity) myClass

标签: java android string class android-activity


【解决方案1】:

您需要创建一个新的 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");

【讨论】:

  • 谢谢!这就是我要找的。我找不到将课程转换为活动的方法。
  • 但是以后不要想改变你的结构:-/
猜你喜欢
  • 1970-01-01
  • 2013-11-12
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多