Gil*_*oza 1 xml jquery android android-studio
我希望我的菜单在单击菜单时在其下方显示子菜单.我已经尝试了几种方法,但我无法使其发挥作用.每次单击菜单时应用程序都会崩溃.
这是我的Java
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.nav_gallery) {
MenuItem acc1 = (MenuItem) findViewById(R.id.manage_profile);
}
else if (id == R.id.manage_profile) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.nav_gallery2) {
}
else if (id == R.id.search_school) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.school_vielnearby) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.school_vielall) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.nav_gallery3) {
}
else if (id == R.id.search_organization) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.organization_vielnearby) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
else if (id == R.id.organization_vielall) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
这是我的菜单XML
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:id="@+id/menuall">
<item
android:id="@+id/nav_gallery"
android:icon="@android:drawable/ic_menu_gallery"
android:title="My Account">
</item>
<item
android:id="@+id/manage_profile"
android:checked="false"
android:visible="false"
android:title=" Manage Account">
</item>
<item
android:id="@+id/nav_gallery2"
android:icon="@android:drawable/ic_menu_gallery"
android:title="School">
</item>
<item
android:id="@+id/search_school"
android:checked="false"
android:visible="false"
android:title=" Search School"/>
<item
android:id="@+id/school_vielnearby"
android:checked="false"
android:visible="false"
android:title=" View Nearby"/>
<item
android:id="@+id/school_vielall"
android:checked="false"
android:visible="false"
android:title=" View All"/>
<item
android:id="@+id/nav_gallery3"
android:icon="@android:drawable/ic_menu_gallery"
android:title="Organization">
</item>
<item
android:id="@+id/search_organization"
android:checked="false"
android:visible="false"
android:title=" Search Organization"/>
<item
android:id="@+id/organization_vielnearby"
android:checked="false"
android:visible="false"
android:title=" View Nearby"/>
<item
android:id="@+id/organization_vielall"
android:checked="false"
android:visible="false"
android:title=" View All"/>
</group>
</menu>
Run Code Online (Sandbox Code Playgroud)
所以基本上我希望我的应用程序在单击菜单时将可见性设置为true.
当我单击包含此代码的菜单时,这是logcat
if (id == R.id.nav_gallery) {
MenuItem acc1 = (MenuItem) findViewById(R.id.manage_profile);
acc1.setVisible(true);
}
01-01 20:20:52.696 21622-21622/ph.schoolar.schoolar W/dalvikvm? threadid=1: thread exiting with uncaught exception (group=0x41bf7c08)
01-01 20:20:52.706 21622-21622/ph.schoolar.schoolar E/AndroidRuntime? FATAL EXCEPTION: main
Process: ph.schoolar.schoolar, PID: 21622
java.lang.NullPointerException
at ph.schoolar.schoolar.StudentView.onNavigationItemSelected(StudentView.java:114)
at android.support.design.widget.NavigationView$1.onMenuItemSelected(NavigationView.java:150)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
at android.support.design.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:308)
at android.view.View.performClick(View.java:4654)
at android.view.View$PerformClick.run(View.java:19438)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
没有必要找到id.你已经item反对了onNavigationItemSelected(MenuItem item)
删除行
MenuItem acc1 = (MenuItem) findViewById(R.id.manage_profile);
Run Code Online (Sandbox Code Playgroud)
尝试
item.setVisible(false); //true or false
Run Code Online (Sandbox Code Playgroud)
如果您使用过NavigationView,则可以满足您的要求
navigationView = (NavigationView) findViewById(R.id.navigation_view);
Menu menu = navigationView.getMenu();
for (int menuItemIndex = 0; menuItemIndex < menu.size(); menuItemIndex++) {
MenuItem menuItem= menu.getItem(menuItemIndex);
if(menuItem.getItemId() == R.id.search_school){
menuItem.setVisible(false);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4931 次 |
| 最近记录: |