在由两个不同活动调用的DialogFragment中,如何转换回此案例的调用活动?

时间:2016-08-06 21:55:32

标签: android android-activity casting android-dialogfragment

我已DialogFragment成功使用我的MainActivity。它使用

调用活动的doPositiveClick()方法
((MainActivity)getActivity()).doPositiveClick()

到目前为止一切顺利,但现在我想重新使用与DialogFragment相同的SecondActivity。我已经尝试了上述代码的语法,但我仍然没有找到一种方法可以将MainActivity替换为可以表示MainActivitySecondActivity的内容,具体取决于DialogFragment }。我有两个活动实现了与doPositiveClick()的接口,但我还没有找到正确的语法来满足我的要求。

让我说清楚:我问一个是或否的问题。我可以调整上面的行,所以我不必在界面上涉及Listener吗?是的,怎么样?如果不是,那么公平。

1 个答案:

答案 0 :(得分:2)

接口是与片段进行通信活动的最佳实践(不相反)。 您可以让父活动实现您的界面,并使您的主动和第二活动孩子。所以你不需要实现。你可以覆盖这些方法。那么哪个活动构成了片段,那个活动覆盖方法将在片段调用时触发。我希望我真正了解你的问题并真正回答。有任何问题请评论。所以我可以通过评论回答,也可以编辑我的答案。

更新:只是是:)在您的片段onAttach方法中,您可以控制哪个活动创建此片段的实例。我希望这会让你满意。

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        if (activity instanceof MainActivity) ...
        if (activity instanceof SecondActivity) ...
    }