当前位置: 首页 > 知识库问答 >
问题:

在android中取消硬件后退按钮上的自定义警报对话框

仲孙诚
2023-03-14

我在硬件的后退按钮上有问题。在我的主要活动中,我有一个列表视图(例如1)。当我单击此列表视图(1)的项时,出现一个警报对话框,在此警报对话框中,有一个列表视图(例如2)。当我按下硬件的后退按钮时,这个列表视图(2)的数据正在重复。我还将取消图像放在这个警报对话框上,当我按下这个取消图像时,数据不会重复。我尝试了不同的方法onResume()、onPause()、onDestroy()、onRestart()来清除列表视图(2)的数组,但都不起作用。这是我的代码...

case LIST_DIALOG :
LayoutInflater inflater2 = LayoutInflater.from(this);
View dialogview1 = inflater2.inflate(R.layout.listdialog, null);
AlertDialog.Builder dialogbuilder2 = new AlertDialog.Builder(this);
dialogbuilder2.setView(dialogview1);
dialogDetails = dialogbuilder2.create();


case LIST_DIALOG:

    AlertDialog alertDialog1 = (AlertDialog) dialog;

    // Cancel Alert Dialog
    ImageView ivCancel = (ImageView) alertDialog1.findViewById(R.id.imgCancel);
    ivCancel.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            dismissDialog(LIST_DIALOG); 
            arr2.clear();
        }
    });

    // Friend List
    showFriendList();
    break;

//列表视图数据通过此函数插入调用private void showFriendList(){//TODO自动生成的方法stub request.executemyFriendsRequestAsync(friendSession,new GraphUserListCallback()){

            @Override
            public void onCompleted(List<GraphUser> users, Response response) {
                // TODO Auto-generated method stub

            //  arr2 = new ArrayList<String>();
                for(GraphUser user : users)
                {
                    arr2.add(user.getName());
                }

                adapter2 = new ArrayAdapter<String>(getBaseContext(), R.layout.single_row, R.id.txt,arr2);
                lvDialog.setAdapter(adapter2);
                lvDialog.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
                adapter2.notifyDataSetChanged();

                itemCount = lvDialog.getCount();
                Toast.makeText(getBaseContext(), "" + itemCount, 1000).show();

            }
        });


        }

//我试过这些方法,但都不起作用...

@Override
      public void onResume()
      {
          super.onResume();
          ShowSavedFiles();
          arr2.clear();

      }

    @Override
    public void onPause()
    {
        super.onPause();
        arr1.clear();
        arr2.clear();
    }


    @Override
    public void onBackPressed() {
    //super.onBackPressed();
    // finish your Activity

    arr2.clear();

    return;
    }

  @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
   if (keyCode == KeyEvent.KEYCODE_BACK) {
        arr2.clear();
        dismissDialog(LIST_DIALOG); 

    }
    return false;
}

共有1个答案

姬昊焱
2023-03-14

我不确定,但向onKeyDown方法添加以下代码可能会有所帮助:

return super.onKeyDown(keyCode, event);
 类似资料:
  • 我正在开发一个Android应用程序。我需要自定义警报对话框按钮,因为它以未指定的方式向我显示按钮。 调用警报对话框的代码为: 在

  • 问题内容: 这是一个滑块难题。拼图完成后,我想显示一个带有“确定”按钮的对话框。当按下“确定”按钮时,我使用来通过Android浏览器加载网站。唯一的问题是,使用当前代码,当拼图完成后,它不会加载一个框(当我使用时会加载)。它什么也没做。有任何想法吗? 问题答案: 试试这个

  • 最近我从支持库切换到com.google.android.Material:Material:1.0.0 但是现在我遇到了一个问题,在这个页面中有一个注释https://github.com/Material-Components/Material-Components-android/blob/master/docs/geting-started.md 注意:使用Material Compone

  • 我已经创建了一个警报对话框构建器,其中正在显示一个表单的对话,我的积极按钮名称是提交,我希望按钮被禁用,除非表单中的所有字段都被填满。下面是我的代码,任何人可以帮助我在这方面的工作。谢谢

  • 在我的应用程序中,当我试图显示自定义的框时,它在android手机中运行良好。现在,当我在android选项卡上安装应用程序时,一切都很好,只有自定义框有问题。不显示。所以我想,我应该检查正常对话框,它工作正常。下面是普通对话框和警报对话框的代码。

  • 我有一个简单的警报对话框与单选项目 我已经在我的主题中添加了自定义样式的警报对话框 这是我的风格 当我运行应用程序时,我会看到此警报 有没有办法在不创建自定义布局的情况下更改单选按钮附近文本的颜色?