加载下一个活动时显示ProgressDialog,微调器未显示

时间:2017-09-29 06:38:06

标签: android progressdialog

我希望在从ProgressDialog跳到我的LoginActivity时显示HomeActivity,基本上是在加载HomeActivity时。

当我在HomeActivity的主线程中显示ProgressDialog时,我正在使用单独的线程来调用LoginActivity的意图。

一切似乎都运行良好,只是ProgressDialog显示但没有动画微调器。

我想知道我是否正确这样做。

来自LoginActivity的相关代码:

public class LoginActivity extends AppCompatActivity {

    private EditText userID, userPass;
    private ProgressDialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        userID = (EditText) findViewById(R.id.edtX_srcLogin_userID);
        userPass = (EditText) findViewById(R.id.edtX_srcLogin_userpass);
        final Button bt_submit = (Button) findViewById(R.id.bT_scrLogin_submit);


        bt_submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                parseUserCredentials(userID.getText().toString(), userID.getText().toString());

            }
        });
    }

    private void parseUserCredentials(String userId, String userPassword) {
        if ( userId.equals("userid") && userPassword.equals("1234") ) {
            dialog = ProgressDialog.show(LoginActivity.this, "Checking credentials",
                    "Please wait...", true, false);
        newThreadLoadActivity();
        }else {

            userID.setText("");
            userPass.setText("");
            userID.requestFocus();
            dialog.cancel();

        }

    }

    private void newThreadLoadActivity(){
        new Thread() {
            public void run() {
                startActivity(new Intent(LoginActivity.this, HomeActivity.class));

            }
        }.start();
    }

    @Override
    protected void onStop() {
        super.onStop();
        dialog.cancel();

    }
}

修改

主要想法是在ProgressDialog加载时显示HomeActivity,并在ProgressDialog准备好显示时取消HomeActivity

1 个答案:

答案 0 :(得分:0)

使用以下代码。在移动到下一个活动时,它将延迟10秒,以便您的进度条可见。

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
 dialog.cancel();
 startActivity(new Intent(LoginActivity.this, HomeActivity.class));
}
}, 10000);