在android中按下硬件的后退按钮时关闭自定义警报对话框

在android中按下硬件的后退按钮时关闭自定义警报对话框,android,android-alertdialog,back-button,Android,Android Alertdialog,Back Button,我在硬件的后退按钮上有问题。在我的主要活动中,我有一个列表视图(比如1)。当我点击这个列表视图(1)的项目时,会出现一个警报对话框,在这个警报对话框中,有一个列表视图(比如2)。当我按下硬件的后退按钮时,此列表视图(2)的数据正在重复。我还将取消图像置于此警报对话框中以关闭,当我按下此取消图像时,数据不会重复。我在Resume()、onPause()、onDestroy()和onRestart()上尝试了不同的方法来清除列表视图(2)的数组,但没有任何效果。这是我的密码 case LIST_DI

我在硬件的后退按钮上有问题。在我的主要活动中,我有一个列表视图(比如1)。当我点击这个列表视图(1)的项目时,会出现一个警报对话框,在这个警报对话框中,有一个列表视图(比如2)。当我按下硬件的后退按钮时,此列表视图(2)的数据正在重复。我还将取消图像置于此警报对话框中以关闭,当我按下此取消图像时,数据不会重复。我在Resume()、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;
//列表视图数据与此函数调用一起插入 私有void showFriendList(){ //TODO自动生成的方法存根 executeMyFriendRequestAsync(friendSession,新GraphUserListCallback(){


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

return super.onKeyDown(keyCode, event);
@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;
}
return super.onKeyDown(keyCode, event);