gpt4 book ai didi

java - 从另一个 Activity 调用方法(调用 Fragment)

转载 作者:行者123 更新时间:2023-12-02 06:48:14 28 4
gpt4 key购买 nike

我调用了方法:

protected void ask(){

Fragment newContent = new QuestionsFragment();
((MainActivity) getActivity()).switchContent(newContent, R.string.questions, MenuFragment.questions_id, BottomActionBarMode.QUESTIONS);
}

主要 Activity : https://docs.google.com/file/d/0B30eXgoSJlFsczNSdkE5Qnc5eG8/edit?usp=sharing

错误:

08-21 17:16:28.574: E/AndroidRuntime(26360): FATAL EXCEPTION: main 08-21 17:16:28.574: E/AndroidRuntime(26360): java.lang.ClassCastException: com.chiv.successteritory.activities.AskLikeQuestionDetailsActivity cannot be cast to com.chiv.successteritory.activities.MainActivity

怎么打电话?提前致谢

最佳答案

如果您在 MainActivity 上并启动 AskLikeQuestionDetailsActivity,则不能保证 MainActivity 仍然存在,因为操作系统可以垃圾收集任何后台 Activity 。

如果您想在 AskLikeQuestionDetailsActivity 上调用 ask() 方法后更改 MainActivity 上的 Fragment,我建议您执行以下操作:

MainActivity 上,不要调用 startActivity 来启动 AskLikeQuestionDetailsActivity,而是调用 startActivityForResult 并覆盖 onActivityResult 方法根据收到的结果更改 Fragment

AskLikeQuestionDetailsActivityask() 上,使用 Activity.RESULT_OK 和配置的 调用 setResult > Intent 将一些信息发送回MainActivity,然后调用finish()(如果您必须退出AskLikeQuestionDetailsActivity 立即 Activity )。

清楚了吗?希望对您有所帮助。

关于java - 从另一个 Activity 调用方法(调用 Fragment),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18359978/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com