如何将片段附加到活动?

时间:2015-03-21 17:53:16

标签: android android-fragments android-fragmentactivity

我有片段活动:

for (String tab_name : tabs) {
    getActionBar().addTab(mActionBar.newTab().setText(tab_name)
                          .setTabListener(this));
}

FragmentManager fm = getSupportFragmentManager();
fm.beginTransaction().add(new FirstFragment(), "TEST").commit();
fm.beginTransaction().add(new SecondFragment(), "TEST").commit();
fm.beginTransaction().add(new ThirdFragment(), "TEST").commit();

当我想从我的SecondFragment调用新的Activity时:

Intent intent =  new Intent(App.context, SomeActivity.class);
startActivity(intent);

它崩溃了这个错误:

03-22 00:22:19.439: E/AndroidRuntime(17438): java.lang.IllegalStateException: Fragment ... not attached to Activity

App.context来自MainActivity:

App.context = getApplicationContext();

我可以知道将片段附加到活动,可以通过将片段添加到fragmentManager来完成,但它仍然会崩溃。我在这里错了什么?

2 个答案:

答案 0 :(得分:1)

而不是

Intent intent =  new Intent(App.context, SomeActivity.class);
startActivity(intent);

使用

Intent intent =  new Intent(getActivity(), SomeActivity.class);
startActivity(intent);

而不是使用App.context使用getActivty()

答案 1 :(得分:0)

由于持有上下文非常糟糕。 只需使用此

Intent intent =  new Intent(getActivity(), SomeActivity.class);
startActivity(intent);