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但为什么需要从另一个活动的另一个片段调用方法(在需要时,该片段甚至可能不在内存中)直接调用?不能直接调用。运行代码后-我必须打开片段-