我有一個活動,顯示連接到藍牙設備時ProgressDialog。它工作正常,直到ProgressDialog啓動時屏幕方向改變。 ProgressDialog消失,當連接建立後,應用程序調用progressDialog.dismiss();在這一點上應用程序崩潰,因爲沒有ProgressDialog解僱。如何防止ProgressDialog在屏幕方向更改時解散?如何防止ProgressDialog在Android屏幕旋轉更改中解散?
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