1

我有一个习惯View,当被触摸时,会启动一个Activity. 我希望这个习惯View遵循正确的面向对象的方法,所以我希望它独立于任何Activity可能显示View.

回顾一下: Activity1 包含 custom View。自定义View启动Activity2。

到目前为止,一切都很好。我可以getContext()从我的内部调用View来启动Activity2。它看起来像这样:

Context con = getContext();
Intent launcher = new Intent(con, TimeWizard.class);
((Activity) con).startActivityForResult(launcher, LAUNCH_TIME);

正如第三行所暗示的,我想得到 that 的返回Activity,但它最终以Activity1's结束onActivityResult()。这意味着Activity1 现在需要了解该 custom 的内部运作View,这并不理想——在某些情况下甚至是不可接受的。

所以我想做的是View启动Activity2,然后直接得到结果。有没有办法做到这一点?我觉得我必须在这里错过明显的答案。我的解决方法是使用Activity1onActivityResult()将结果传递回View. 它很实用,但非常混乱。

4

0 回答 0