导航抽屉和FragmentActivity

时间:2014-06-11 07:22:38

标签: android android-fragments android-fragmentactivity android-navigation

我对android开发相对较新。基本上,我有一个导航抽屉。其中一个菜单需要使用viewpager打开FragmentActivity。

这里是displayview函数

 /**
 * Diplaying fragment view for selected nav drawer list item
 * */
private void displayView(int position) {
    LAST_DISPLAY_POSITION = position;

    Fragment fragment = null;
    switch (position) {
    case 0:
        Intent in = new Intent(getApplicationContext(), TestFragmentActivity.class);
        startActivity(in);
        break;
    case 1:
        fragment = new MyAccountFragment();
        break;
    case 2:
        fragment = new TestFragment();
        break;
    case 3:
        fragment = new TestFragment();
        break;
    case 4:
        fragment = new TestFragment();
        break;

    default:
        break;
    }

    if (fragment != null) {
        FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frame_container, fragment).commit();

        // update selected item and title, then close the drawer
        mDrawerList.setItemChecked(position, true);
        mDrawerList.setSelection(position);
        setTitle(navMenuTitles[position]);
        mDrawerLayout.closeDrawer(mDrawerList);
    } else {
        // error in creating fragment
        Log.e("MainActivity", "Error in creating fragment");
    }
}

正如您在案例0中看到的那样,我只是调用startactivity来打开视图。如何使用导航抽屉显示FragmentActivity?

非常感谢任何帮助。

修改

my activity_main.xml

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- Framelayout to display Fragments -->

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

    <!-- Listview to display slider menu -->

    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/list_background"
        android:choiceMode="singleChoice"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />

</android.support.v4.widget.DrawerLayout>

1 个答案:

答案 0 :(得分:0)

做一件事,现在您可能已经在{1}}的单个活动中为NavigationDrawer编写了代码,而您将转到另一个活动DisplayFragmentsActivity,这肯定会让您编写代码在该活动中TestFragmentActivity,如果您正在处理,还需要管理所有其他事项以选择菜单。

因此,我建议将NavigationDrawer的代码从NavigationDrawer移至新的DisplayFragmentsActivity,并将该活动扩展到MasterFragmentActivityDisplayFragmentsActivity。所以现在你们两个活动中都有相同的抽屉。

这将解决问题。

您可能希望避免创建其他活动的另一个建议,因为您正在使用片段尝试仅使用单个活动。尝试找到TestFragmentActivity的替代品。