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接收的所有数据。