Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何访问现有活动的导航菜单_Android_Navigation Drawer - Fatal编程技术网

Android 如何访问现有活动的导航菜单

Android 如何访问现有活动的导航菜单,android,navigation-drawer,Android,Navigation Drawer,我在我的项目中有两项活动。MainActivity(我的第一个活动)中有一个NavigationDrawer。我可以使用汉堡包图标访问导航菜单项。但我想在我的交通活动中使用它。如何添加汉堡图标和访问导航菜单项 my.xml <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas

我在我的项目中有两项活动。MainActivity(我的第一个活动)中有一个NavigationDrawer。我可以使用汉堡包图标访问导航菜单项。但我想在我的交通活动中使用它。如何添加汉堡图标和访问导航菜单项

my.xml

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.example.yunus.ototakip.MainActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

</android.support.design.widget.AppBarLayout>


<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:popupTheme="@style/AppTheme.PopupOverlay"
    app:titleTextColor="@color/beyaz"
    app:subtitleTextColor="@color/beyaz">

</android.support.v7.widget.Toolbar>

<include layout="@layout/content_main" />

在您的情况下,建议使用片段代替活动:

将所有MainActivity内容(中间的内容,而不是抽屉布局或导航视图内容)移动到名为MainFragment(ex)的片段中:

将框架布局添加到out content_main.xml:

 <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>
为IpuclariSayfasi活动创建另一个片段

OnNavigationItemSelected()将MainFragment替换为IpuclariSayfasi片段:

@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    .......

    else if (id == R.id.nav_ipucu)
    {
      FragmentManager fm = getFragmentManager();
      fm.beginTransaction().replace(R.id.content_frame, new IpuclariSayfasi(), "IpuclariSayfasi").commit();        
    }

    .......

}

这是使用导航抽屉活动的标准系统。

通过扩展AppCompactActivity.java创建一个公共活动类(比如:BaseActivity.java)。将所有抽屉相关的内容实现到BaseActivity中,并在MainActivity和TrafficActivity中扩展此类。我是否应该在xml文件中执行一些操作?您必须创建单独的xml,但我在MainActivity中使用BottomBarNavigation。我用的是框架布局。你认为这种情况可以吗?是的,没问题。用新的framelayout包装中间的内容,并用片段替换。
FragmentManager fm = getFragmentManager();
        fm.beginTransaction().replace(R.id.content_frame, new MainFragment()).commit();
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    .......

    else if (id == R.id.nav_ipucu)
    {
      FragmentManager fm = getFragmentManager();
      fm.beginTransaction().replace(R.id.content_frame, new IpuclariSayfasi(), "IpuclariSayfasi").commit();        
    }

    .......

}