Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java progressDialog在progressDialog.Disclose()之后不解除;_Java_Android_Android Studio_Progressdialog - Fatal编程技术网

Java progressDialog在progressDialog.Disclose()之后不解除;

Java progressDialog在progressDialog.Disclose()之后不解除;,java,android,android-studio,progressdialog,Java,Android,Android Studio,Progressdialog,我有一个方法,可以从文件中获取字符串并将其放入名为username的字符串变量中,因为从文件中读取需要时间,我希望在函数完成之前显示progressDialog,Pregress对话框确实会出现,但在我使用progressDialog.Disease()时不会取消 代码如下: public String loadUserFromFile(){ progressDialog = new ProgressDialog(this); progressDialog.setTitle("

我有一个方法,可以从文件中获取字符串并将其放入名为username的字符串变量中,因为从文件中读取需要时间,我希望在函数完成之前显示progressDialog,Pregress对话框确实会出现,但在我使用progressDialog.Disease()时不会取消

代码如下:

public String loadUserFromFile(){

    progressDialog = new ProgressDialog(this);
    progressDialog.setTitle("Please wait...");
    progressDialog.setMessage("Loading User");
    progressDialog.show();

    String username = "default";
    String fileName = "savedUserFile.txt";
    FileInputStream fis;
    try {
        fis = openFileInput(fileName);
        InputStreamReader inputStreamReader = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(inputStreamReader);
        username = br.readLine();
        br.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    username = username.replaceAll("\\s+","");
    progressDialog.dismiss();
    return username;
}

首先要确保对话框不为空

 ProgressDialog mProgressDialog;
     mProgressDialog = new ProgressDialog(thisActivity);
            mProgressDialog.setCancelable(false);

 //If you want to show progress dialog
     public void showProgressDialog(String message) {
            if (mProgressDialog != null) {
                mProgressDialog.setMessage(message);
                mProgressDialog.show();
            }
        }

   //To dismiss progress dialog
    public void dismissProgressDialog() {
            if (mProgressDialog != null && mProgressDialog.isShowing()) {
                mProgressDialog.dismiss();
            }
        }
用法:

显示进度对话框(“加载”)


dismissProgressDialog()

尝试调试,看看执行是否真的达到了disclose方法。我觉得你的代码不错。两个catch块中的call dismise调用两个catch块中的dismise都有效,谢谢