Android 从“活动”向上导航到“片段”

Android 从“活动”向上导航到“片段”,android,android-intent,android-fragments,android-navigation,Android,Android Intent,Android Fragments,Android Navigation,假设我有两个活动,分别称为A_活动和B_活动A_活动有3个片段,分别命名为A_片段、B_片段、和C_片段A_活动充当三个片段的基本活动 从B_片段,可以导航到B_活动,从B_活动可以导航到B_片段。从A_活动可以导航到A_片段,B_片段,或C_片段。最后,从A_片段、B_片段或C_片段,可以导航到任何其他片段 下面是活动层次结构及其各自片段的任意表示: A_Activity A_Fragment B_Fragment B_Activity C_Fragme

假设我有两个活动,分别称为
A_活动
B_活动
A_活动
有3个片段,分别命名为
A_片段
B_片段
、和
C_片段
A_活动
充当三个片段的基本活动


B_片段
,可以导航到
B_活动
,从
B_活动
可以导航到
B_片段
。从
A_活动
可以导航到
A_片段
B_片段
,或
C_片段
。最后,从
A_片段
B_片段
C_片段
,可以导航到任何其他片段

下面是活动层次结构及其各自片段的任意表示:

A_Activity
    A_Fragment
    B_Fragment
        B_Activity
    C_Fragment
假设
a_片段
a_活动
的默认片段

我目前的解决方案是:在选择的
B_活动
的主页图标中,我正在创建一个新的意图:

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\u Activity
导航到
B\u Fragment
的正确方法是什么?
B\u Fragment
开始
B\u Activity
使用
startActivityForResult(…)
通过
getApplicationcontext
而不是
getActivity().getApplicationcontext().getApplicationcontext()


活动B中,
使用
setResult(此处的数据)
返回片段并完成
ActivityB
返回
片段B

从B_活动到B_片段(如果从B_片段启动B_活动),您只需要检测home按钮或system back按钮的操作,然后通过调用

finish()
e、 g.在B_活动中

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if (id == android.R.id.home) {
        finish();
    }

    return super.onOptionsItemSelected(item);
}

B_活动必须是活动有什么原因吗?你能把它作为另一个片段来实现吗?@Code Guru每个片段代表一个导航抽屉项目,而B_活动只是一个不同于B_片段的可点击链接。虽然我不是很确定,但我认为它是一个活动更有意义。我在考虑这个问题,但是
B_活动
可能有自己的子活动和子片段。B_活动有一个子类是B_片段。B_片段have子类是A_活动。如果这样做,A_活动就不是B_活动的子活动。其他清理方法是从ActivityA开始使用activityB,然后使用activityB中的数据为ActivityA设置结果,ActivityA传输为FragmentB接收的所有数据。