我有片段活动:
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来完成,但它仍然会崩溃。我在这里错了什么?
答案 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);