0

我想从非活动类调用在活动A、活动B和活动C中定义的方法。我只想调用任何一项活动的方法。例如activity.method(),其中activity 是activityA 或activityB 或activityC。

((Object) this.context)).method();

在上面的行中,我需要指定Object一个活动。如何在运行时确定具有活动上下文的对象?

注意:实际上,我有这样的 10-15 活动。

4

2 回答 2

2

这是一个建议:

  1. 使用您的“method()”签名创建一个接口。
  2. 让所有活动实现该接口。
  3. 获得上下文后,您可以将您的活动类型转换到该接口并调用“method()”。
  4. 请记住,在 try-catch 块中执行类型转换,这样如果您遇到尝试在未实现接口的活动上调用方法的情况,您可以安全地处理 TypeCastException。

希望这可以帮助。

于 2013-09-30T12:47:34.093 回答
1

下面的代码可能会帮助你

if(context instanceof ActivityA)
((ActivityA) this.context)).method();
else if(context instanceof ActivityB)
((ActivityB) this.context)).method();
else if(context instanceof ActivityC)
((ActivityC) this.context)).method();
于 2013-09-30T12:49:07.240 回答