2016-10-17 173 views
0

我對此很新,所以我不知道如何正確解釋它,但是我想創建一個菜單,當我點擊它時打開子菜單。該菜單需要在導航抽屜(我有)。所以,如果你知道蒸汽移動應用程序的外觀,我想讓它像它那樣。我曾嘗試在子菜單上設置可見性,但每當我點擊菜單時,應用程序就會崩潰。感謝您給我的任何幫助。 這裏是最重要的代碼(至少我是怎麼想的):使用OnClick菜單顯示/隱藏子菜單

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    MenuItem settingsItem = menu.findItem(R.id.action_settings); 
    settingsItem.setVisible(false); 
    register = menu.findItem(R.id.nav_submenu); 
    return false; 
} 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    if (id == R.id.nav_menu) { 
     register.setVisible(!(register.isVisible())); 
    } 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    drawer.closeDrawer(GravityCompat.START); 
    return true; 
} 

這裏是日誌:

10-17 22:03:39.467 6307-6307/com.example.user。應用程序D/AndroidRuntime:關閉虛擬機 10-17 22:03:39.467 6307-6307/com.example.user.app E/AndroidRuntime:致命例外:main 進程:com.example.user.app,PID:6307 java.lang.NullPointerException:嘗試調用null對象引用上的接口方法'boolean android.view.MenuItem.isVisible()' at android.support.design.widget.NavigationView $ com.example.user.app.MainActivity.onNavigationItemSelected(MainActivity.java:132) android.support.v7.view .menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:810) at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152) at android.support.v7.view.menu.MenuBuilder.performItemAction (MenuBuilder.java:957) at android.support.design.internal.NavigationMenuPresenter $ 1.onClick(NavigationMenuPresenter.java:328) at android.view.View.performClick(View.java:5233) at android.view。查看$ Perfor m.Click.run(View.java:21209) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper。循環(Looper.java:152) at android.app.ActivityThread.main(ActivityThread.java:5507) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 10-17 22:03:39.467 6307-6307/com.example.user。應用程序D/AppTracker:應用程序事件:崩潰 10-17 22:03:39.523 6307-6307/com.example.user.app I /過程:發送信號。 PID:6307 SIG:9

+0

向我們展示你做了什麼和日誌時崩潰。 –

+0

@ th3pat3l我做了,你現在可以幫我嗎? – user18497

回答

0

我相信你正在尋找的是ExpandableListView

+0

感謝您的回覆,我試圖用這個問題的第二個答案:http://stackoverflow.com/questions/31446720/how-to-open-sub-menu-after-click-on-menu-item- in-navigation-drawer,但我不知道什麼是ExpandedMenuModel。你知道嗎? – user18497