如何在DialogFragment中处理后台单击事件

时间:2015-12-28 02:33:51

标签: android android-dialogfragment

我开发了一个对话框可以在Android中扩展DialogFragment应用设置。我重写onDissmiss方法,但它可以在关闭对话框后处理。

我想在仅成功保存时关闭对话框,如下所示:

  
      
  1. 点击背景或点击硬件的后退按钮
  2.   
  3. 保存到首选项(显示进度图标)
  4.   
  5. 成功保存(隐藏进度图标)
  6.   
  7. 关闭对话框
  8.   

关闭对话前如何处理?或者如何处理后台点击事件?

2 个答案:

答案 0 :(得分:0)

试试这个:

 mDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
        @Override
        public void onDismiss(DialogInterface dialog) {
            mCallBackHandler.sendEmptyMessage(ACTION_DISMISS);
        }
    });

答案 1 :(得分:0)

你应该在对话框上调用OnKeyListner,试试这个:

dialog.setOnKeyListener(new Dialog.OnKeyListener() 
        {

            @Override
            public boolean onKey(DialogInterface dialogInterface, int keyCode, KeyEvent event) 
            {
                Log.d(TAG, "OnDialogBackKeyPressed() :: onKey() : ");
                switch (event.getAction()) 
                {
                case KeyEvent.ACTION_DOWN:

                    return true;
                }

                switch (keyCode) 
                {
                case KeyEvent.KEYCODE_BACK:
                    dialog.dismiss();
                    return true;
                }
                return true;
            }
        });