android交叉活动界面

时间:2011-12-20 23:43:21

标签: android android-activity

假设我有两个活动活动,A(有一个窗口)和B(在A中嵌入了一个视图,但它仍然是它自己的活动)。 活动在不同的包中,但在同一个过程中运行。

活动B中的视图已添加到A中实现接口I的视图中。 I的声明位于AB之间共享的库中。

所以我假设我可以在B的实例内部执行某些操作:

viewInA = viewInB.getParent();
(I)viewInA;

但是我得到了一个投射错误。有没有办法使这项工作?

进行一些内省可以很容易地证明viewInA确实实现了I。当然,I所在的包对两个活动都是相同的。

由于这种情况,我的一系列限制是相当独特的;使用意图进行简单的消息传递是行不通的。

我可以创建一个使用内省的包装器来获取我知道存在的视图上的方法。但那很难看,而且我很懒。

1 个答案:

答案 0 :(得分:0)

除了其他所有内容之外,如果你在Java中出现了一个转换错误,那是因为viewInA确实没有实现I.请注意getParent()返回一个实现ViewParent的类...(即我是否扩展了ViewParent?) / p>

尽管如此,您可以设置断点,并在运行时检查viewInA的类型!

相关问题