我有一个自定义View
,触摸后会启动Activity
。我希望此自定义View
遵循正确的面向对象的方法,因此我希望它独立于可能显示Activity
的任何特定View
。
总结一下:Activity
1包含自定义View
。自定义View
启动Activity
2。
到目前为止,这么好。我可以在我的getContext()
内拨打View
以启动Activity
2.它看起来像这样:
Context con = getContext();
Intent launcher = new Intent(con, TimeWizard.class);
((Activity) con).startActivityForResult(launcher, LAUNCH_TIME);
正如在第三行中暗示的那样,我希望得到Activity
的回报,但它最终会在Activity
1 onActivityResult()
。这意味着Activity
1现在需要了解该习惯View
的内部运作方式,这种情况不太理想 - 在某些情况下甚至是不可接受的。
所以我想做的是让View
启动Activity
2,然后直接获得结果。有没有办法做到这一点?我觉得我必须在这里错过明显的答案。我的解决方法是使用Activity
1 onActivityResult()
将结果传回View
。它功能齐全,但非常混乱。