我们说我有两项名为A_Activity
和B_Activity
的活动。 A_Activity
有3个名为A_Fragment
,B_Fragment
和C_Fragment
的片段。 A_Activity
充当三个片段的基本活动。
从B_Fragment
,可以导航到B_Activity
,然后从B_Activity
导航到B_Fragment
。来自A_Activity
,可以导航到A_Fragment
,B_Fragment
或C_Fragment
。最后,从A_Fragment
,B_Fragment
或C_Fragment
,可以导航到任何其他片段。
这里是活动层次结构及其各自片段的任意表示:
A_Activity
A_Fragment
B_Fragment
B_Activity
C_Fragment
还要认为A_Fragment
是A_Activity
的默认片段。
我目前的解决方案是:在B_Activity
的主页图标中选中,我正在创建一个新意图:
Intent intent = new Intent(B_Activity.this, A_Activity.class);
intent.putExtra("data_to_start_B_Fragment", "B"); // instead of starting A Fragment
startActivity(intent);
从B_Fragment
导航到B_Activity
的正确方法是什么?
答案 0 :(得分:1)
从B_Fragment
开始,B_Activity
使用startActivityForResult(...)
而不是getApplicationcontext
开始getActivity().getApplicationContext()
。
在Activity B,
中,您使用setResult(data here)
返回片段并完成ActivityB
返回fragment B
。
答案 1 :(得分:0)
从B_Activity到B_Fragment(如果从B_Fragment启动B_Activity),您只需要从主页按钮或系统后退按钮检测操作,然后通过调用
来终止活动finish()
e.g。在B_Activity
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (id == android.R.id.home) {
finish();
}
return super.onOptionsItemSelected(item);
}