Android Studio菜单项单击“不工作”

Android Studio菜单项单击“不工作”,android,menu,menuitem,bottomnavigationview,android-bottom-nav-view,Android,Menu,Menuitem,Bottomnavigationview,Android Bottom Nav View,因此,我的菜单项除了在单击时显示放大的动画外,不会做任何事情。我正试图和他们一起开始一项新的活动,我在一个活动上贴了一个吐司,看看我是否做了什么,但我什么也没有得到。这是一个普遍的问题吗 第17版 targetSdkVersion 27 布局 <android.support.design.widget.BottomNavigationView android:id="@+id/navigation" android:layout_width="0dp"

因此,我的菜单项除了在单击时显示放大的动画外,不会做任何事情。我正试图和他们一起开始一项新的活动,我在一个活动上贴了一个吐司,看看我是否做了什么,但我什么也没有得到。这是一个普遍的问题吗

第17版 targetSdkVersion 27

布局

<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="0dp"
        android:layout_marginStart="0dp"
        android:background="?android:attr/windowBackground"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:menu="@menu/navigation" />

提前感谢您对问题的任何帮助或指导。我刚开始使用菜单项click intent,我真的不明白为什么它不起作用

onOptionsItemSelected
不用于处理
BottomNavigationView
上的操作。对
BottomNavigationView
中的
MenuItem
执行的操作应如下所示:

BottomNavigationView bottomNavigationView = findViewById(R.id.navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView
            .OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull final MenuItem item) {
            int id = item.getItemId();

            //noinspection SimplifiableIfStatement

            if (id == R.id.navigation_home) {

                Intent navHome = new Intent(MainActivity.this, WordpressActivity.class);
                MainActivity.this.startActivity(navHome);
                return true;
            }

            if (id == R.id.navigation_apps) {
                Toast.makeText(MainActivity.this, "apps is Clicked", Toast.LENGTH_LONG).show();
                return true;
            }

            if (id == R.id.navigation_profile) {
                Intent navProf = new Intent(MainActivity.this, AccountActivity.class);
                MainActivity.this.startActivity(navProf);
                return true;
            }

            if (id == R.id.navigation_logout) {
                Intent navLog = new Intent(MainActivity.this, LogoutActivity.class);
                MainActivity.this.startActivity(navLog);
                return true;
            }
            return false;

    });

菜单xml文件的名称是
navigation
吗?是的,navigation.xml在菜单文件夹中。您能在菜单文件夹中放置一个断点,检查是否调用了
onoptionItemSelected
?setOnNavigationItemSelectedListener无法解析,返回值在方法之外返回。@ValhallaSkies有一个额外的
}
。把它拿走。我已经更新了我的answer@ValhallaSkies萨加尔的解决方案是正确的。我想你可以检查一下:我一定是遗漏了什么。如果将其置于onCreate之外,则setOnNavigationItemSelectedListener无法解析。如果我把它放在onCreate中,startActivity无法解析方法。我很困惑。它一定在
onCreate()
中,只需按
alt+enter
并确保所有导入都是正确的。
@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.navigation, menu);
        return true;
    }

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement

    if (id == R.id.navigation_home) {

        Intent navHome = new Intent(this, WordpressActivity.class);
        this.startActivity(navHome);
        return true;
    }

    if (id == R.id.navigation_apps) {
        Toast.makeText(this, "apps is Clicked", Toast.LENGTH_LONG).show();
        return true;
    }

    if (id == R.id.navigation_profile) {
        Intent navProf = new Intent(this, AccountActivity.class);
        this.startActivity(navProf);
        return true;
    }

    if (id == R.id.navigation_logout) {
        Intent navLog = new Intent(this, LogoutActivity.class);
        this.startActivity(navLog);
        return true;
    }

    return super.onOptionsItemSelected(item);
}
BottomNavigationView bottomNavigationView = findViewById(R.id.navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView
            .OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull final MenuItem item) {
            int id = item.getItemId();

            //noinspection SimplifiableIfStatement

            if (id == R.id.navigation_home) {

                Intent navHome = new Intent(MainActivity.this, WordpressActivity.class);
                MainActivity.this.startActivity(navHome);
                return true;
            }

            if (id == R.id.navigation_apps) {
                Toast.makeText(MainActivity.this, "apps is Clicked", Toast.LENGTH_LONG).show();
                return true;
            }

            if (id == R.id.navigation_profile) {
                Intent navProf = new Intent(MainActivity.this, AccountActivity.class);
                MainActivity.this.startActivity(navProf);
                return true;
            }

            if (id == R.id.navigation_logout) {
                Intent navLog = new Intent(MainActivity.this, LogoutActivity.class);
                MainActivity.this.startActivity(navLog);
                return true;
            }
            return false;

    });