我有一个活动,当连接到蓝牙设备时显示进度对话框。在 ProgressDialog 显示期间屏幕方向发生变化之前,它可以正常工作。但是,当 ProgressDialog 消失后建立连接,应用程序调用 progressDialog.dismiss(); 此时应用程序崩溃,因为没有 ProgressDialog 可以解除。如何防止在屏幕方向更改时 ProgressDialog 被解除?
public void prepareViews(int ID, boolean state){
switch(ID){
case USERNAME_TEXTBOX:
LoginUsernameTextBox.setEnabled(state);
break;
case PASSWORD_TEXTBOX:
LoginPasswordTextBox.setEnabled(state);
break;
case LOGIN_BUTTON:
LoginButton.setEnabled(state);
break;
case LOGIN_PROGRESSBAR:
if(state == true){
LoginProgressBar.setVisibility(View.VISIBLE);
LoginProgressBar.setIndeterminate(true); }
else{
LoginProgressBar.setVisibility(View.GONE);
}
break;
case CONNECTING_DIALOG:
if(state == true){
progressDialog = ProgressDialog.show(MainActivity.this, "", "Connecting", true); }
else{
progressDialog.dismiss();
}
break;
}
}
progressDialog
上调用方法,以保持对话框片段的实现与活动分离。也就是说,如果您想要更改对话框片段显示信息的方式,而不必同时更改活动。 - frozenkoi