我有一个习惯View
,当被触摸时,会启动一个Activity
. 我希望这个习惯View
遵循正确的面向对象的方法,所以我希望它独立于任何Activity
可能显示View
.
回顾一下: Activity
1 包含 custom View
。自定义View
启动Activity
2。
到目前为止,一切都很好。我可以getContext()
从我的内部调用View
来启动Activity
2。它看起来像这样:
Context con = getContext();
Intent launcher = new Intent(con, TimeWizard.class);
((Activity) con).startActivityForResult(launcher, LAUNCH_TIME);
正如第三行所暗示的,我想得到 that 的返回Activity
,但它最终以Activity
1's结束onActivityResult()
。这意味着Activity
1 现在需要了解该 custom 的内部运作View
,这并不理想——在某些情况下甚至是不可接受的。
所以我想做的是View
启动Activity
2,然后直接得到结果。有没有办法做到这一点?我觉得我必须在这里错过明显的答案。我的解决方法是使用Activity
1onActivityResult()
将结果传递回View
. 它很实用,但非常混乱。