我有一个标准的NavigationDrawer应用程序,我可以使用MainActivity切换不同的片段(A部分,B部分)。 片段A部分包含Item。在选择项目时,将开始显示项目的详细信息。在详细的活动中,我有一个按钮,onClick应显示MainActivity并切换到不同的片段B部分。
请帮助实现这一目标。
答案 0 :(得分:0)
要切换到MainActivity上的不同片段,请在intent的bundle上传递一些数据,指示要切换的片段。
在MainActivity中,使用getIntent()方法读取包,并读取从DetailsActivity传递的数据,并根据值替换该片段。
示例:
在DetailsActiivty onClick中:
Intent intent= new Intent(this, ManiActivity.class);
intent.putExtra("fragment","section_b");
startActivity(intent);
在MainActivity onCreate方法中:
if(getIntent!=null){
String fragment=getIntent().getStringExtra("fragment");
if (fragment.equals("section_b")){
SectionB sectionB=new SectionB();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, sectionB);
transaction.addToBackStack(null);
transaction.commit();
}else{
SectionA sectionA=new SectionA();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, sectionA);
transaction.addToBackStack(null);
transaction.commit();
}
}
答案 1 :(得分:0)
您可以使用此代码将片段从一个片段更改为另一个片段。
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
sectionBFragment fragment=new sectionBFragment();
fragmentTransaction.replace(R.id.group_layout, fragment);
fragmentTransaction.commit();
您可以将日期section1片段解析为sectionB片段。就像这样。
Bundle bundle=new Bundle();
bundle.putString("key", "value");
fragment.setArguments(bundle);
答案 2 :(得分:0)
谢谢大家的回复,实际上我是用
解决的启动DetailActivity的startActivityForResult方法,然后在我做的详细活动上点击onClick按钮
的setResult(RESULT_OK); 光洁度();
并在片段A部分中重写方法
onActivityResult(int requestCode,int resultCode,Intent data)
然后将片段发送消息切换到MainActivity。
如果这是android中的标准方式,请告诉我。我对android很新。