0
我有這樣的自定義對話框:自動駁回/關閉自定義對話框
public class MyProgressDialog extends Dialog {
public MyProgressDialog(Context context) {
super(context);
}
public static MyProgressDialog show(Context context) {
MyProgressDialog dialog = new MyProgressDialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.progress);
dialog.getWindow().setBackgroundDrawableResource(
android.R.color.transparent);
dialog.show();
return dialog;
}
public static void dismiss(Context context) {
MyProgressDialog dialog = new MyProgressDialog(context);
dialog.dismiss();
}
}
它會顯示
protected void onPreExecute() {
MyProgressDialog.show(ItemsActivity.this);
}
但不會解僱:
MyProgressDialog.dismiss(ItemsActivity.this);
沒有人知道爲什麼嗎?
靜態不做會更好嗎? – KickingLettuce
是的,更好的想法是將對話框引用保留在需要的位置。然後不用靜態的'dismiss()'方法,你可以得到你創建的一個,並在你不再需要時將其解除。 – dmon
靜態引用的問題是它不夠聰明,如果你顯示兩個,那麼你將永遠無法隱藏第一個。你可以讓它變得更聰明,但是你應該保留一個引用。 – dmon