我有一个ActionBarDrawerToggle,其中包含许多片段,例如
RootFragment LoginFragment RegistrationFragment
来自RootFragment的我导航到另一个活动,如
Intent activity = new Intent(getActivity().getApplicationContext(),TestActivity.class);
activity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(activity);
getActivity().finish();
如何从TestActivity导航到LoginFragment
我正在使用以下代码:
startActivity(new Intent(TestActivity.this, RegistrationFragment.class));
finish();
并且应用程序崩溃时出现以下消息:RegistrationFragment无法转换为android.app.Activity
有任何帮助吗?
答案 0 :(得分:1)
startActivity
方法用于启动Activity
而非添加Fragment
。要添加Fragment
,您应该这样做:
FragmentTransaction ft = getFragmentManager()
.beginTransaction();
ft.replace(R.id.container, new RegistrationFragment());
ft.commit();
和R.id.container是xml
中的片段容器ID答案 1 :(得分:0)
您不能将Fragment类作为参数传递给startActivity方法。你必须在那里传递Activity类,当它被创建时,在刚启动的Activity中显示适当的Fragment。在你的情况下做:
startActivity(new Intent(TestActivity.this, ActionBarActivity.class));
finish();
然后在ActionBarActivity的onCreate
方法中添加片段。
getFragmentManager().beginTransaction().add(containerViewId , RegistrationFragment).commit();