导航抽屉:子活动到主要活动的不同片段

时间:2014-11-19 21:53:19

标签: android android-activity navigation-drawer

我有一个标准的NavigationDrawer应用程序,我可以使用MainActivity切换不同的片段(A部分,B部分)。 片段A部分包含Item。在选择项目时,将开始显示项目的详细信息。在详细的活动中,我有一个按钮,onClick应显示MainActivity并切换到不同的片段B部分。

请帮助实现这一目标。

3 个答案:

答案 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很新。