当用户触摸屏幕时如何避免关闭我的进度对话框?

13K*_*3KZ 35 java android

我正在开发一个android项目,当用户下载文件时会显示进度对话框.

但是当用户触摸屏幕时,进度对话框将被取消而不等待100%.我已经尝试过这个:

 public boolean onTouchEvent(MotionEvent e) {
        return true;
    } 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我怎么能避免这个?

更新1:

似乎setCancelable(false)工作正常.非常感谢你的答案,但是当下载持久且用户决定放弃它时,这将是不可能的,因为我已经停用了后面的keyCode:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)

我怎么能搞清楚这一点?

Bha*_*iya 108

使用 dialog.setCancelable(false);

示例:

        ProgressDialog dialog = new ProgressDialog(WiFiFinderActivity.this);
        dialog.setMessage("please wait...");
        dialog.show();
        dialog.setCancelable(false);
        dialog.setCanceledOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)

  • `dialog.setCancelable(false);`就足够了.当`dialog.setCanceledOnTouchOutside(false);`ONLY阻止用户在点击屏幕上的任何其他位置时解除对话框时,前ALSO会阻止用户在单击后退按钮时解除对话框.因此,您不需要声明两者. (13认同)

Jai*_*mar 11

你不想使用这个覆盖功能..你只是设置

final Dialog dialog=new Dialog(dialogactivity.this);
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)