Название набора навигационных ящиков Android

Я хочу изменить заголовок моего навигационного ящика, когда пользователь щелкает определенный фрагмент навигационного ящика. Я новичок в мире программирования для Android. Поэтому, пожалуйста, помогите Ниже мой код

Основной код деятельности

    package com.androidbelieve.HIT_APP;

import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity{
    DrawerLayout mDrawerLayout;
    NavigationView mNavigationView;
    FragmentManager mFragmentManager;
    FragmentTransaction mFragmentTransaction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         *Setup the DrawerLayout and NavigationView
         */

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




        /**
         * Lets inflate the very first fragment
         * Here , we are inflating the TabFragment as the first Fragment
         */

        mFragmentManager = getSupportFragmentManager();
        mFragmentTransaction = mFragmentManager.beginTransaction();
        // mFragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();
        mFragmentTransaction.replace(R.id.containerView,new HomeFragment()).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_home) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_dept) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new DeptFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_facility) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new FacilityFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_placement) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new PlacementFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_gallery) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new GalleryFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_developer) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new DeveloperFragment()).commit();

                }



                if (menuItem.getItemId() == R.id.nav_item_near) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new NearFragment()).commit();

                }


                if (menuItem.getItemId() == R.id.nav_item_notify) {
                    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.containerView,new NotifyFragment()).commit();

                }

                if (menuItem.getItemId() == R.id.nav_item_vtu) {
                    FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                    xfragmentTransaction.replace(R.id.containerView,new TabFragment()).commit();
                }


                return false;

            }



        });

        /**
         * Setup Drawer Toggle of the Toolbar
         */

        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();

    }
}

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

Любой другой фрагмент кода, который требуется, дайте мне знать


person sunny    schedule 12.02.2016    source источник
comment
хотите изменить заголовок навигационного ящика или заголовок ActionBar/ToolBar?   -  person Dhaval Parmar    schedule 12.02.2016
comment
Спасибо сработало как шарм   -  person sunny    schedule 12.02.2016
comment
Я работаю над своим школьным проектом, не могли бы вы мне помочь!!! Как я могу отправить вам сообщение и задать сомнения   -  person sunny    schedule 12.02.2016


Ответы (1)


переместите переменную android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar); выше сразу после setContentView в onCreate метод вашей деятельности и сделайте ее final.

когда пользователь выбирает навигационный ящик, установите заголовок ToolBar в onNavigationItemSelected, как показано ниже.

if (menuItem.getItemId() == R.id.nav_item_home) {
   FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
   fragmentTransaction.replace(R.id.containerView,new HomeFragment()).commit();
   toolbar.setTitle("Your Fragment Name");
   }

чтобы установить ICON, вы можете использовать

toolbar.setLogo(ContextCompat.getDrawable(MainActivity.this, R.drawable.cheese_1));
person Dhaval Parmar    schedule 12.02.2016
comment
@sunny: проверьте отредактированный ответ, и вы можете импортировать пример кода библиотеки поддержки из Android SDK. проверьте путь в вашем Android SDK AndroidSDK\extras\android\support\samples, многие другие образцы находятся здесь AndroidSDK\samples\android-23, все они импортируются в студию Android и запускают ее. это поможет вам - person Dhaval Parmar; 12.02.2016
comment
как сделать галерею в виде сетки, например, изображения будут отображаться в виде сетки, и когда вы нажмете на нее, она будет отображаться с некоторым текстом в ней. - person sunny; 12.02.2016
comment
Спасибо за это, но когда я нажимаю на картинку, она не выступает. Вместо этого приложение вылетает - person sunny; 12.02.2016
comment
проверьте путь в вашем Android SDK AndroidSDK\extras\android\support\samples, многие другие образцы находятся здесь AndroidSDK\samples\android-23, все они импортируются в студию Android и запускают ее. все типы образцов доступны здесь, пожалуйста, ознакомьтесь с образцом SDK - person Dhaval Parmar; 12.02.2016