在触发.setNavigationItemSelectedListener时更改导航栏标题

时间:2016-06-23 14:45:00

标签: android

我在 DrawerLayout 上有项目包装项目,基本上我想在触发 .setNavigationItemSelectedListener 时更改标题。我尝试了 menuItem.setTitle(" New title "); 但没有工作。 我在最后一部分的主要活动上看到这个 DrawerLayout 被包装 ActionBarDrawerToggle 然后在那部分设置了标题。

enter image description here

MainActivity:

public class MainActivity extends AppCompatActivity{
   ..
  ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

             mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
             mNavigationView = (NavigationView) findViewById(R.id.shitstuff) ;

             mFragmentManager = getSupportFragmentManager();
             mFragmentTransaction = mFragmentManager.beginTransaction();

             mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();

        /* Setup click events on the Navigation View Items.*/
             mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
             @Override
             public boolean onNavigationItemSelected(MenuItem menuItem) {
                mDrawerLayout.closeDrawers();


                 if (menuItem.getItemId() == R.id.nav_item_komisia) {
                     FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                     xfragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();
                      menuItem.setTitle(" New title "); // NOT WORKING

                 }

                 return false;
            }

        });

        /*  Setup Drawer Toggle of the Toolbar

           R.string.app_name = Drawer With Swipe Tabs
         */
            android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
                ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout, toolbar,R.string.app_name,
                R.string.app_name);
                mDrawerLayout.setDrawerListener(mDrawerToggle);
                mDrawerToggle.syncState();   
    }
}

和activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">
    <android.support.v7.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/orange"
        android:id="@+id/toolbar"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:title="Drawer With Swipe Tabs" />

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

    <FrameLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/containerView">
     </FrameLayout>

    <android.support.design.widget.NavigationView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:id="@+id/shitstuff"
        app:itemTextColor="@color/black"
        app:headerLayout="@layout/header_layout"
        app:menu="@menu/drawermenu"
        android:layout_marginTop="-24dp"
        />

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

1 个答案:

答案 0 :(得分:0)

尝试添加此行
toolbar.setTitle(menuItem.getTitle()); 到setNavigationItemSelectedListener

RECTANGLE