Как отклонить AlertDialog в android
Я создал AlertDialog, содержащий 4 кнопки
OptionDialog = new AlertDialog.Builder(this);
OptionDialog.setTitle("Options");
LayoutInflater li = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li.inflate(R.layout.options, null, false);
background = (Button) v.findViewById(R.id.bkgSpinnerLabel);
SoundVib = (Button) v.findViewById(R.id.SoundVibSpinnerLabel);
OptionDialog.setView(v);
OptionDialog.setCancelable(true);
OptionDialog.setNeutralButton("Ok",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
}
});
background.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SetBackground();
// here I want to dismiss it after SetBackground() method
}
});
SoundVib.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent soundVibIntent = new Intent(SebhaActivity.this, EditPreferences.class);
startActivity(soundVibIntent);
}
});
OptionDialog.show();
Я хочу отклонить его после метода SetBackground(), как я могу это сделать?
спасибо заранее.
Ответы
Ответ 1
На самом деле нет метода cancel()
или dismiss()
из класса AlertDialog.Builder.
Итак, вместо AlertDialog.Builder OptionDialog
используйте экземпляр AlertDialog
.
Как,
AlertDialog OptionDialog = new AlertDialog.Builder(this).create();
Теперь просто вызовите OptionDialog.dismiss();
background.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SetBackground();
// here I want to dismiss it after SetBackground() method
OptionDialog.dismiss();
}
});
Ответ 2
Я думаю, что есть более простое решение: просто используйте аргумент DialogInterface
, который передается методу onClick
.
AlertDialog.Builder db = new AlertDialog.Builder(context);
db.setNegativeButton("cancel", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface d, int arg1) {
d.cancel();
};
});
См., например, http://www.mkyong.com/android/android-alert-dialog-example.
Ответ 3
Попробуйте следующее:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog OptionDialog = builder.create();
background.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
SetBackground();
OptionDialog .dismiss();
}
});
Ответ 4
Существует два способа закрытия диалогового окна предупреждения.
Вариант 1:
AlertDialog#create().dismiss();
Вариант 2:
The DialogInterface#dismiss();
Из коробки, фреймворк вызывает DialogInterface#dismiss();
, когда вы определяете прослушиватели событий для кнопок:
-
AlertDialog#setNegativeButton();
-
AlertDialog#setPositiveButton();
-
AlertDialog#setNeutralButton();
для диалогового окна "Предупреждение".
Ответ 5
Просто попробуйте это -
OptionDialog.create().dismiss();
Надеюсь, это решит вашу проблему.
Ответ 6
Вот как я закрываю свой alertDialog
lv_three.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
GetTalebeDataUser clickedObj = (GetTalebeDataUser) parent.getItemAtPosition(position);
alertDialog.setTitle(clickedObj.getAd());
alertDialog.setMessage("Öğrenci Bilgileri Güncelle?");
alertDialog.setIcon(R.drawable.ic_info);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("Tamam", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// User pressed YES button. Write Logic Here
}
});
alertDialog.setNegativeButton("İptal", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//alertDialog.
alertDialog.setCancelable(true); // HERE
}
});
alertDialog.show();
return true;
}
});
Ответ 7
Просто установите представление как null, которое просто закроет AlertDialog.
Ответ 8
Отклонить или отменить AlertDialog.Builder
dialog.setNegativeButton("إلغاء", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
вы вызываете функцию увольнения() в диалоговом интерфейсе