从类中调用活动的方法(UNKNOWN)

时间:2013-09-30 12:36:58

标签: java android android-activity

我想调用一个在非活动类的activityA,activityB和activityC中定义的方法。我想调用一种只有任何一种活动的方法。 例如activity.method(),其中activity是activityA或activityB或activityC。

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

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

注意:实际上,我有10-15个活动。

2 个答案:

答案 0 :(得分:2)

这是一个建议:

  1. 使用“method()”签名创建一个界面。
  2. 让所有活动实现该接口。
  3. 获取上下文后,您可以将活动强制转换为该接口并调用“method()”。
  4. 请记住,在try-catch块中执行类型转换,这样如果你遇到尝试在没有实现接口的活动上调用方法的场景,你可以安全地处理TypeCastException
  5. 希望这有帮助。

答案 1 :(得分: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();