2015-10-22 16 views
20

मेरे पास मेरे ऐप में नया नेविगेशन ड्रॉवर है और मैं कोड से गतिशील रूप से नेविगेशन व्यू मेनू आइटम शीर्षक टेक्स्ट को बदलना चाहता हूं। मैंने कई पदों को देखा है लेकिन मुझे पता नहीं लगाया जा सकता है, मैं यह कैसे कर सकता हूं। मैं इसे सही तरीके से कैसे प्राप्त कर सकता हूं?एंड्रॉइड चेंज नेविगेशन ड्रॉवर मेनू आइटम टेक्स्ट प्रोग्रामेटिक

MainActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

setContentView(R.layout.activity_main); 
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
fab.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) 
       .setAction("Action", null).show(); 
    } 
}); 

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
     this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
drawer.setDrawerListener(toggle); 
toggle.syncState(); 

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
navigationView.setNavigationItemSelectedListener(this); 

} 

activity_main_drawer.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

<group android:checkableBehavior="single"> 
    <item android:id="@+id/nav_camara" android:icon="@android:drawable/ic_menu_camera" 
     android:title="Import" /> 
    <item android:id="@+id/nav_gallery" android:icon="@android:drawable/ic_menu_gallery" 
     android:title="Gallery" /> 
    <item android:id="@+id/nav_slideshow" android:icon="@android:drawable/ic_menu_slideshow" 
     android:title="Slideshow" /> 
    <item android:id="@+id/nav_manage" android:icon="@android:drawable/ic_menu_manage" 
     android:title="Tools" /> 
</group> 

<item android:title="Communicate"> 
    <menu> 
     <item android:id="@+id/nav_share" android:icon="@android:drawable/ic_menu_share" 
      android:title="Share" /> 
     <item android:id="@+id/nav_send" android:icon="@android:drawable/ic_menu_send" 
      android:title="Send" /> 
    </menu> 
</item> 

+1

डायनामिक रूप से मेनू को बदलने का एकमात्र तरीका यह है कि इसे साफ़ करें और एक और मेनू लोड करें: http://stackoverflow.com/questions/31203212/how-to-inflate- एंड्रॉइड-नेविगेशनव्यू-साथ-एक-मेन्यू-गतिशील-दौरान-ऑनक्ली –

उत्तर

66

आप MainActivity.java फ़ाइल में निम्नलिखित लाइनों को जोड़कर प्रोग्राम के रूप में नेविगेशन मेनू आइटम का शीर्षक बदल सकते हैं।

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    ... 
    //other stuff here 
    ... 
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 

    // get menu from navigationView 
    Menu menu = navigationView.getMenu(); 

    // find MenuItem you want to change 
    MenuItem nav_camara = menu.findItem(R.id.nav_camara); 

    // set new title to the MenuItem 
    nav_camara.setTitle("NewTitleForCamera"); 

    // do the same for other MenuItems 
    MenuItem nav_gallery = menu.findItem(R.id.nav_gallery); 
    nav_gallery.setTitle("NewTitleForGallery"); 

    // add NavigationItemSelectedListener to check the navigation clicks 
    navigationView.setNavigationItemSelectedListener(this); 

} 

यह मेरे लिए ठीक काम करता है। उम्मीद है कि यह आपकी मदद करेगा।

+3

उत्तर स्वीकार किया जाना चाहिए! – BenRoob

+1

इंटरनेट पर सबसे अच्छा तरीका – Mikhail

9

बदलें मामले में नीचे आप का नाम बदलें या नेविगेशन मेनू दराज सूची से आइटम को हटाने की तरह कोड

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    if (navigationView != null) { 
     Menu menu = navigationView.getMenu(); 
     menu.findItem(R.id.nav_profile).setTitle("My Account"); 
     menu.findItem(R.id.nav_mng_task).setTitle("Control Task"); 
     //menu.findItem(R.id.nav_pkg_manage).setVisible(false);//In case you want to remove menu item 
     navigationView.setNavigationItemSelectedListener(this); 
    } 
-1
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_menus); 


    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 
    navigationView.setNavigationItemSelectedListener(this); 

    Menu menu = navigationView.getMenu(); 
    MenuItem nav_login = menu.findItem(R.id.nav_logout); 
nav_login.setTitle("Login"); 


} 

यह सही है! उम्मीद है कि यह ठीक चल रहा है ......

+0

मेरा आवेदन ठीक काम कर रहा है ...... –

संबंधित मुद्दे