我正在使用 Dialogname.Show() 方法來顯示加載對話框,這作業正常但是當我嘗試關閉它時它不起作用我使用了 Dialogname.hide()、Dialogname.cancel()、Dialogname.dismiss()
對話是一種活動
public class RecipeLoading extends Dialog {
public RecipeLoading(@NonNull Context context){
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.meetvishalkumar.myapplication.R.layout.activity_recipe_loading);
}
}
對話框關閉代碼 `
RecipeLoading recipeLoading = new RecipeLoading(RecipeDetailsActivity.this);
recipeLoading.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
recipeLoading.hide();
recipeLoading.cancel();
recipeLoading.dismiss();
`
對話框顯示代碼
`
RecipeLoading recipeLoading = new RecipeLoading(RecipeDetailsActivity.this);
recipeLoading.setCancelable(false);
recipeLoading.getWindow().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
recipeLoading.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
recipeLoading.show();
`
我正在使用 Dialogname.Show() 方法顯示加載對話框,這作業正常但是當我嘗試關閉它時它不起作用我使用了 Dialogname.hide()、Dialogname.cancel()、Dialogname.dismiss()
uj5u.com熱心網友回復:
當你RecipeLoading recipeLoading = new RecipeLoading(RecipeDetailsActivity.this);第二次打電話時,你生活在前一個recipeLoading并打電話給一個新的,當你打電話給你時,recipeLoading.dismiss();你基本上打電話來關閉recipeLoading你創建的第二個(誰還沒有顯示)
所以我建議你在你的班級頂部宣告并在你想顯示它時創建它,然后當你想關閉它時只需呼叫recipeLoading.dismiss();
您的代碼應如下所示:
public class RecipeDetailsActivity extends Activity {
// diclaring a RecipeLoading named "recipeLoading"
RecipeLoading recipeLoading;
// onCreate() etc.
}
當你想顯示對話框時,只需呼叫
recipeLoading = new RecipeLoading(this);
recipeLoading.show();
并解雇它呼叫
recipeLoading.dismiss();
為了使事情更有條理,請在對話框類中對對話框進行所有自定義,如下所示:
public class RecipeLoading extends Dialog {
public RecipeLoading(@NonNull Context context){
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.meetvishalkumar.myapplication.R.layout.activity_recipe_loading);
recipeLoading.setCancelable(false);
recipeLoading.getWindow().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
recipeLoading.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
}
}
uj5u.com熱心網友回復:
問題是首先你創建一個對話框物件并顯示它(好)
現在,當您嘗試關閉它時,您會再次創建一個新的對話框物件,然后嘗試隱藏它而不是呼叫舊對話框物件的隱藏或關閉或取消方法,嘗試像這樣顯示
RecipeLoading recipeLoading = new RecipeLoading(RecipeDetailsActivity.this);
recipeLoading.setCancelable(false);
recipeLoading.getWindow().setBackgroundDrawable(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
recipeLoading.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
recipeLoading.show();
現在,當您想關閉它時,請使用
recipeLoading.dismiss();
它將關閉正在顯示的對話框
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/527065.html
標籤:爪哇安卓安卓工作室
