Java 为什么进度对话框不显示?

Java 为什么进度对话框不显示?,java,android,firebase-realtime-database,progressdialog,Java,Android,Firebase Realtime Database,Progressdialog,我的编码工作在数据保存在实时数据库中的地方。然而,进展对话不起作用。如果数据未能保存在实时数据库中,如何进行编码 private void SaveAccountInformation() { loadingBar.setTitle("Registration Account"); loadingBar.setMessage("Please wait while we are registering you in our system."); loadingBar.sh

我的编码工作在数据保存在实时数据库中的地方。然而,进展对话不起作用。如果数据未能保存在实时数据库中,如何进行编码

private void SaveAccountInformation() {

    loadingBar.setTitle("Registration Account");
    loadingBar.setMessage("Please wait while we are registering you in our system.");
    loadingBar.show();
    loadingBar.setCanceledOnTouchOutside(true);

    String firstname = RegisterFirstName.getText().toString();
    String lastname = RegisterLastName.getText().toString();

    if (TextUtils.isEmpty(firstname))
        Toast.makeText(RegistrationActivity.this, "Enter your first name.", Toast.LENGTH_SHORT).show();

    else if (TextUtils.isEmpty(lastname))
        Toast.makeText(RegistrationActivity.this, "Last name is required.", Toast.LENGTH_SHORT).show();

    else {
        String userid = databaseUser.push().getKey();
        User user = new User(firstname, lastname);
        databaseUser.child(userid).setValue(user);
        Toast.makeText(RegistrationActivity.this, "Registration has been successful.", Toast.LENGTH_SHORT).show();

        Intent HomeIntent = new Intent(RegistrationActivity.this, home.class);
        HomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(HomeIntent);
        finish();
    }

    loadingBar.dismiss();
}

据我所知,您希望跟踪数据是否正确保存,同时显示进度对话框。我假设您正在使用Firebase数据库并将值保存在特定节点下

您可以考虑在这里回调函数,我想在您的FielBasic实时数据库中保存数据时。p> 我正在重写代码。请注意,代码未经测试,如果出现语法错误,请进行修改

private void SaveAccountInformation() {

    ProgressDialog loadingBar = new ProgressDialog(RegistrationActivity.this);
    loadingBar.setMessage("Please wait while we are registering you in our system.");
    loadingBar.show();
    loadingBar.setCanceledOnTouchOutside(true);

    String firstname = RegisterFirstName.getText().toString();
    String lastname = RegisterLastName.getText().toString();

    if (TextUtils.isEmpty(firstname))
        Toast.makeText(RegistrationActivity.this, "Enter your first name.", Toast.LENGTH_SHORT).show();

    else if (TextUtils.isEmpty(lastname))
        Toast.makeText(RegistrationActivity.this, "Last name is required.", Toast.LENGTH_SHORT).show();

    else {

        String userid = databaseUser.push().getKey();
        User user = new User(firstname, lastname);

        databaseUser.child(userid).setValue(user)
            .addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {
                    Toast.makeText(RegistrationActivity.this, "Data saved successfully!", Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(RegistrationActivity.this, "Failed to save the data", Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
                }
            }); 

        Intent HomeIntent = new Intent(RegistrationActivity.this, home.class);
        HomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(HomeIntent);
        finish();
    }
}
private void SaveAccountInformation(){
ProgressDialog loadingBar=新建ProgressDialog(RegistrationActivity.this);
setMessage(“我们正在系统中为您注册,请稍候”);
loadingBar.show();
loadingBar.SetCanceledOnTouchOut(真);
String firstname=RegisterFirstName.getText().toString();
字符串lastname=RegisterLastName.getText().toString();
if(TextUtils.isEmpty(firstname))
Toast.makeText(RegistrationActivity.this,“输入您的名字”,Toast.LENGTH_SHORT.show();
else if(TextUtils.isEmpty(lastname))
Toast.makeText(RegistrationActivity.this,“姓氏是必需的。”,Toast.LENGTH_SHORT.show();
否则{
字符串userid=databaseUser.push().getKey();
User User=新用户(firstname,lastname);
databaseUser.child(userid).setValue(user)
.addOnSuccessListener(新的OnSuccessListener(){
@凌驾
成功时公开作废(作废避免){
Toast.makeText(RegistrationActivity.this,“数据保存成功!”,Toast.LENGTH_SHORT.show();
loadingBar.disclose();
}
})
.addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
Toast.makeText(RegistrationActivity.this,“未能保存数据”,Toast.LENGTH_SHORT.show();
loadingBar.disclose();
}
}); 
意向HomeIntent=新意向(RegistrationActivity.this,home.class);
HomeIntent.addFlags(Intent.FLAG_活动_新任务| Intent.FLAG_活动_清除任务);
startActivity(家庭意向);
完成();
}
}

希望能有所帮助。

我不能在这里分享,因为它太长了……您在哪里初始化了加载栏??进度对话框仅在后台完成作业时显示,并且您正在处理主线程。它正在显示,但您的代码运行速度很快,当您执行任何网络任务时,它将显示,线程和使用根据您的要求哪种类型的操作在使用过程中barThanks先生!我看到了进度对话框,但过了一会儿,它就消失了。
private void SaveAccountInformation() {

    ProgressDialog loadingBar = new ProgressDialog(RegistrationActivity.this);
    loadingBar.setMessage("Please wait while we are registering you in our system.");
    loadingBar.show();
    loadingBar.setCanceledOnTouchOutside(true);

    String firstname = RegisterFirstName.getText().toString();
    String lastname = RegisterLastName.getText().toString();

    if (TextUtils.isEmpty(firstname))
        Toast.makeText(RegistrationActivity.this, "Enter your first name.", Toast.LENGTH_SHORT).show();

    else if (TextUtils.isEmpty(lastname))
        Toast.makeText(RegistrationActivity.this, "Last name is required.", Toast.LENGTH_SHORT).show();

    else {

        String userid = databaseUser.push().getKey();
        User user = new User(firstname, lastname);

        databaseUser.child(userid).setValue(user)
            .addOnSuccessListener(new OnSuccessListener<Void>() {
                @Override
                public void onSuccess(Void aVoid) {
                    Toast.makeText(RegistrationActivity.this, "Data saved successfully!", Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
                }
            })
            .addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText(RegistrationActivity.this, "Failed to save the data", Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
                }
            }); 

        Intent HomeIntent = new Intent(RegistrationActivity.this, home.class);
        HomeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(HomeIntent);
        finish();
    }
}