在导航菜单中的Android应用程序中创建alertdialog以注销

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在导航菜单中的Android应用程序中创建alertdialog以注销相关的知识,希望对你有一定的参考价值。

我会尽力解释这个,我相信会有一个简单的解释。

我有一个带有注销选项的导航菜单。除了我已经分离并使用IF语句的注销外,菜单项都在一个switch case中。我让它退出并直接回到登录界面,但我认为这不适合用户体验,所以我尝试添加一个警告对话框,让用户可以选择确认他们是否肯定要注销。

我试过这个(这只是转换):

navigationView = findViewById(R.id.navigation_view);
    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId())
            {
                case R.id.nav_home:
                    fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new HomeFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("");
                    item.setCheckable(true);
                    mDrawerLayout.closeDrawers();
                    break;

                case R.id.nav_create_case:
                    fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new CreateCaseFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Create a Case");
                    item.setCheckable(true);
                    mDrawerLayout.closeDrawers();
                    break;

                case R.id.nav_barcode_scanner:
                    fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new BarcodeScannerFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Barcode Scanner");
                    item.setCheckable(true);
                    mDrawerLayout.closeDrawers();
                    break;

                case R.id.nav_checklists:
                    fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new ChecklistsFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Checklists");
                    item.setCheckable(true);
                    mDrawerLayout.closeDrawers();
                    break;

                case R.id.nav_create_report:
                    fragmentTransaction = getSupportFragmentManager().beginTransaction();
                    fragmentTransaction.replace(R.id.main_container, new CreateReportFragment());
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Create Report");
                    item.setCheckable(true);
                    mDrawerLayout.closeDrawers();
                    break;


            }
            if (item.getItemId() == R.id.nav_logout) {

                final AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
                alert.setTitle("Logout");
                alert.setMessage("Are you sure you wish to logout?")
                        .setCancelable(false)
                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                FirebaseAuth.getInstance().signOut();
                            }
                        })
                        .setNegativeButton("No", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                Intent i2 = new Intent(MainActivity.this, MainActivity.class);
                                i2.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                startActivity(i2);
                            }
                        });

因此,注销按钮不执行任何操作。不崩溃或任何事情。就是现在。

任何帮助非常感谢。特别是如果我做了一些愚蠢的事情。

提前致谢

答案

你错过了一个show语句:

alert.show();

它类似于toast,你必须显式调用show()来显示对话框

以上是关于在导航菜单中的Android应用程序中创建alertdialog以注销的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Leanback 库在 Android TV 中创建顶部导航栏

如何在 dotnet 应用程序中创建导航菜单?

如何在android中创建自定义导航抽屉

如何在android的导航菜单中创建子级别?

如何在 Adob​​e AIR 中创建 Android 选项菜单? (不是Java)

像在 ICS 中一样在 android 2.x 中创建下拉菜单的最佳方法