Навигационный ящик и FragmentActivity

Я относительно новичок в разработке Android. По сути, у меня есть Navigation Drawer. Одно из меню нужно будет открыть FragmentActivity с помощью viewpager.

здесь функция 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 с помощью ящика навигации?

Любая помощь будет принята с благодарностью.

ИЗМЕНИТЬ

моя активность_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>

person skycrew    schedule 11.06.2014    source источник
comment
вы не можете отобразить действие в навигационном ящике просто... просто используйте фрагмент... есть ли причина того, что вы делаете?   -  person Rod_Algonquin    schedule 11.06.2014
comment
@Rod_Algonquin извините за мой ломаный английский. я думаю, вы неправильно поняли мой вопрос. Как вы можете видеть в коде, в случаях с 1 по 5 будет использоваться TestFragment(), который является фрагментом. Однако для случая 0 я хочу использовать FragmentActivity, потому что я использую viewpager в FragmentActivity.   -  person skycrew    schedule 11.06.2014
comment
Вы с этим чего-нибудь добились? у меня такая же проблема сейчас   -  person Jonny Wright    schedule 22.04.2015


Ответы (1)


Сделайте одну вещь, прямо сейчас вы можете написать код для NavigationDrawer в своем единственном действии, скажем, DisplayFragmentsActivity, и вы переходите к другому действию TestFragmentActivity, которое наверняка заставит вас написать код для NavigationDrawer в этом же действии, плюс вам нужно будет управлять всеми остальными вещами для выбор меню, если вы обрабатываете.

Итак, я предлагаю переместить ваш код NavigationDrawer из DisplayFragmentsActivity в новый MasterFragmentActivity и распространить эту активность на ваши DisplayFragmentsActivity и TestFragmentActivity. Итак, теперь у вас будет один и тот же ящик в обоих действиях.

Это решит проблему.

Еще одно предложение, на которое вы можете обратить внимание, чтобы избежать создания другого действия, поскольку вы используете фрагменты, старайтесь использовать только одно действие. попробуй найти замену TestFragmentActivity.

person MKJParekh    schedule 11.06.2014
comment
в настоящее время у меня есть только 1 навигационный ящик. Мой навигационный ящик находится в разделе MainActivity. Все отображаются с использованием фрагмента, кроме случая 0 с использованием FragmentActivity, поскольку я хочу использовать ViewPager - person skycrew; 11.06.2014