如何启动活动并显示特定片段

时间:2016-03-17 14:37:33

标签: android android-fragments

我有一个MainActivity,它有几个片段,这些片段被添加然后显示/隐藏。这是因为MainActivity使用NavigationDrawer。单击抽屉中的项目会导致添加不同的片段(如果它们不存在),或者显示/隐藏(如果它们存在)。

我的问题是,如何通过来自不同活动的意图启动我的MainActivity,同时显示特定的片段?

我是否必须将一些额外的内容传递给我的MainActivity,然后根据该数据添加/显示/隐藏相关的片段?还有另一种方式吗?

3 个答案:

答案 0 :(得分:10)

创建Intent时,可以给它一个额外的数据来确定要加载的片段。

MultilayerPerceptronClassifier trainer = new MultilayerPerceptronClassifier()...;
MultilayerPerceptronClassificationModel model = trainer.fit(trainingData);
TopologyModel topoModel = FeedForwardTopology.multiLayerPerceptron(model.layers(), true).getInstance(model.weights());

现在,在您的活动中检查额外内容并加载正确的片段:

    Intent i = new Intent(this, ActivityClass.class);
    i.putExtra("frgToLoad", FRAGMENT_A);

    // Now start your activity
    startActivity(i);

}

答案 1 :(得分:0)

如果你正在寻找这样的东西,希望如此!

@Override
public void onNavigationDrawerItemSelected(int position) {    
    Fragment fragment;
    FragmentManager fManager = getFragmentManager();
    Bundle args = new Bundle();
    args.putInt(MCConstants.ARG_SECTION_NUMBER, position);
    clearAllBackStack();
    FragmentTransaction fTransaction = fManager.beginTransaction();

    switch (position) {
    case 0:
        fragment = new FirstFragment();
        fragment.setArguments(args);
        fTransaction.replace(R.id.container, fragment,
                "FTAG").commit();
        break;
    case 1:
        fragment = new SecFragment();
        fragment.setArguments(args);
        fTransaction.replace(R.id.container, fragment,
                "STAG").commit();
        break;
    case 2:
        fragment = new ThirdFragment();
        fragment.setArguments(args);
        fTransaction.replace(R.id.container, fragment,
                "TTAG").commit();
        break;
    }
}

答案 2 :(得分:0)

您可以使用sharedPreference来实现目标。打开TAB / Fragment后保存索引。

        //get current tab
        sharedPreferences = getSharedPreferences("MyPrefs", MODE_PRIVATE);
        String position = sharedPreferences.getString("tab_opened", null);
        if(position==null){
            viewPager.setCurrentItem(1,true);
        }else if(position=="0"){
            viewPager.setCurrentItem(0,true);
        }else if(position=="1"){
            viewPager.setCurrentItem(1,true);
        }else if(position=="2"){
            viewPager.setCurrentItem(2,true);
        }

}// <<<~~~ THAT IS END OF onCreate() method.

请参阅本教程:OPEN THIS