在由两个不同活动调用的 DialogFragment 中,对于这种情况,您如何转换回调用 activity?

In DialogFragment called by two different activities, how do you cast back to the calling activity for this case?

我有一个 DialogFragment 成功地使用了我的 MainActivity。它使用

调用 activity 的 doPositiveClick() 方法
((MainActivity)getActivity()).doPositiveClick()

到目前为止一切顺利,但现在我想重新使用相同的 DialogFragmentSecondActivity。我已经尝试了上面一行的语法,但我仍然没有找到一种方法来用可以表示 MainActivitySecondActivity 的东西替换 MainActivity ,具体取决于哪个叫做 DialogFragment.我有两个活动都使用 doPositiveClick() 实现了一个接口,但我仍然没有找到正确的语法来满足我的要求。

让我明确一点:我问的是是或否的问题。我可以调整上面的行,所以我不必在界面上涉及 Listener 吗?是的,怎么样?如果没有,很公平。

接口是与activity片段通信的最佳实践(不对)。 您可以只让父 activity 实现您的界面,并让您的 mainactivity 和 secondactivity 子。所以你不需要实施。您可以只覆盖这些方法。所以哪个 activity 制作片段, activity 覆盖方法将在片段调用时触发。我希望我真正理解你的问题并真正回答。有任何问题请评论。所以我可以通过评论回答,也可以编辑我的答案。

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

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