Android jetpack组件-抽屉导航上的toast点击

标签 android android-jetpack

我正在使用导航喷气背包并设置了抽屉导航。每件事都运转良好。但问题是我想在用户单击“nav_share”时显示 toast ,但它没有显示...... my nav drawer..i want to show toast when user clicks order history whose id is "nav_share"

这是我制作抽屉导航的方法

DrawerLayout drawer = findViewById(R.id.drawer_layout);
        NavigationView navigationView = findViewById(R.id.nav_view);

        navigationView.setNavigationItemSelectedListener(this);

        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_plan, R.id.navigation_notifications)
                .setDrawerLayout(drawer)
                .build();

        NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
        NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
        NavigationUI.setupWithNavController(navigationView, navController);

我的抽屉导航菜单是

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

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_home"
            android:icon="@drawable/ic_menu_camera"
            android:title="@string/menu_home" />
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/ic_menu_gallery"
            android:title="@string/menu_gallery" />
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/ic_menu_slideshow"
            android:title="@string/menu_slideshow" />
        <item
            android:id="@+id/nav_tools"
            android:icon="@drawable/ic_menu_manage"
            android:title="@string/menu_tools" />
    </group>

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

</menu>

最后:

@Override
    public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {

        int id = menuItem.getItemId();

        if (id == R.id.nav_share)
            Toast.makeText(LauncherActivity.this, "Click", Toast.LENGTH_SHORT).show();

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

我想要那个点击 toast ...我看不到我错过了什么...

最佳答案

如果有人想要答案......我做了一些研究,终于找到了解决方案......希望它有所帮助......

NavigationView navigationView = findViewById(R.id.nav_view);
MenuItem shareItem = navigationView.getMenu().findItem(R.id.nav_share);
shareItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
     @Override
     public boolean onMenuItemClick(MenuItem item) {

     Toast.makeText(LauncherActivity.this, "click", Toast.LENGTH_SHORT).show();
     //do as you want with the button click

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

      return true;
     }
 });

关于Android jetpack组件-抽屉导航上的toast点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58971853/

相关文章:

android - Youtube V3 API : know if the video is avaliable on Android mobile device

用于在后台运行日常任务的 Android WorkManager api

Android jetpack 导航组件来自对话框

android - 自 Compose BOM 2023.08.00 以来,仪器测试失败,因为惰性列表更改似乎在层次结构中留下了旧节点

android - 尝试 jetpack compose 时显示错误 : compiler backend and cannot be loaded by the old compiler

android - 如何在 android 中按 Y 轴旋转 View ?

java - 将图片从 URI 复制到文件时图片旋转了 90 度

android - 你如何在android中使用setId?

android - requestLocationUpdates 在一些距离改变/行进时获取更新

android - 在android导航组件中添加进入动画开始目的地