Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从另一个活动调用方法(调用片段)_Java_Android_Actionbarsherlock_Fragment - Fatal编程技术网

Java 从另一个活动调用方法(调用片段)

Java 从另一个活动调用方法(调用片段),java,android,actionbarsherlock,fragment,Java,Android,Actionbarsherlock,Fragment,我调用了以下方法: protected void ask(){ Fragment newContent = new QuestionsFragment(); ((MainActivity) getActivity()).switchContent(newContent, R.string.questions, MenuFragment.questions_id, BottomActionBarMode.QUESTIONS); } 主要活动: 错误: 08-2

我调用了以下方法:

protected void ask(){

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

错误:

08-21 17:16:28.574:E/AndroidRuntime(26360):致命异常:主 08-21 17:16:28.574:E/AndroidRuntime(26360):java.lang.ClassCastException:com.chiv.successterory.activities.AskLikeQuestionDetailsActivity无法强制转换为com.chiv.successterory.activities.MainActivity


怎么打电话?提前感谢

如果您在
main活动上
并启动
asklikequestiontailsactivity
,则不能保证
main活动
仍然存在,因为操作系统可以在后台对任何活动进行垃圾收集

如果在
AskLikeQuestionDetailsActivity
上调用
ask()
方法后,要在
main活动上更改
片段,我建议您执行以下操作:

main活动
上,不要调用
startActivity
来启动
asklikequestiontailsactivity
,而是调用
startActivityForResult
并覆盖
onActivityResult
方法来根据收到的结果更改
片段

AskLikeQuestionDetailsActivity
ask()
上,通过
活动调用
setResult
。RESULT\u OK
和配置的
意图
将一些信息发送回
主活动
,然后调用
finish()
(如果必须立即退出
AskLikeQuestionDetailsActivity
活动

清楚吗?希望有帮助。

在ask()asklikequestiontailsactivity中:

Intent intent = new Intent(getActivity(), MainActivity.class);
        int condition = 1;
        intent.putExtra("condition", condition);
        startActivity(intent);
在onCreate()MainActivity.class中:

Bundle extras = getIntent().getExtras();
    if (extras != null) {
        showQuestions();
    }

(MainActivity)getActivity()
尝试
(asklikequestiontailsactivity)getActivity()
@LiaPronina中存在问题,但该类很可能没有
switchContent
方法。ask
switchContent
方法在哪里?asklikequestiontailsactivity中的ask(),switchContent(…)在MainActivityThank中,这是一个我理解但不知道如何实现的选项。主要任务是调用片段:QuestionsFragment但为什么需要从另一个活动的另一个片段调用方法(在需要时,该片段甚至可能不在内存中)直接调用?不能直接调用。运行代码后-我必须打开片段-