2016-02-24 68 views
0

我已經使用導航抽屜活動創建了一個新的android studio項目。目前,主要活動是在應用程序加載時啓動的(這很好),但我想將此主要活動與抽屜中的特定菜單項相關聯,以便1)當選擇此菜單項時,主要活動將加載,並且2)我想要該應用程序第一次啓動時默認選擇/突出顯示的菜單項開始時默認選擇了Android導航抽屜

我想我會用onNavigationItemSelected方法中的意圖處理問題1,但我不確定如何選擇菜單項默認。

我搜索了周圍,我發現的唯一解決方案引用片段,但我沒有在這個項目中使用片段(和那些解決方案沒有工作)。例如,我嘗試了selectItem(0);onCreate()navigationView.getMenu().getItem(0).setChecked(true);但似乎都沒有工作。

這裏是我的基本代碼:

MainActivity.java

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, "FAB Pressed", 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

<item android:title="Menu"> 
     <menu> 
      <group android:checkableBehavior="single"> 
       <item 
        android:id="@+id/nav_new" 
        android:icon="@drawable/ic_menu_share" 
        android:title="@string/nav_new" /> 
       <item 
        android:id="@+id/nav_start" 
        android:icon="@drawable/ic_menu_slideshow" 
        android:title="@string/nav_start" /> 
       <item 
        android:id="@+id/nav_delete" 
        android:icon="@drawable/ic_menu_manage" 
        android:title="@string/nav_delete" /> 
      </group> 
     </menu> 
    </item> 

沒有太大的距離除了菜單項的項目開始改變。我想在默認情況下選中New菜單項,因爲我希望該項目與在MainActivity

回答

2

你只需要添加關聯代碼:

navigationView.setCheckedItem(R.id.nav_new); 
0

我的事情這一點的最好辦法是包括android:checked="true"

<item android:title="Menu"> 
     <menu> 
      <group android:checkableBehavior="single"> 
       <item 
        android:id="@+id/nav_new" 
        android:icon="@drawable/ic_menu_share" 
        android:checked="true" 
        android:title="@string/nav_new" /> 
       <item 
        android:id="@+id/nav_start" 
        android:icon="@drawable/ic_menu_slideshow" 
        android:title="@string/nav_start" /> 
       <item 
        android:id="@+id/nav_delete" 
        android:icon="@drawable/ic_menu_manage" 
        android:title="@string/nav_delete" /> 
      </group> 
     </menu> 
    </item> 

希望這可以幫助您更

+0

讓我知道你的結果 – saeed