Как отменить AlertDialog.Builder
Что мне нужно писать в Runnable Run Method для отмены Alert.Bulider?
AlertDialog.Builder ad;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Context context=this;
ad = new AlertDialog.Builder(context);
ad.setTitle("Warning");
ad.setMessage("Just Testing It");
ad.setPositiveButton("Yes", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
ad.setNegativeButton("Nooooo", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
ad.show();
Handler h=new Handler();
h.postAtTime(r, 10000);
}
public Runnable r=new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
};
Ответы
Ответ 1
Вы не можете скрыть AlertDialog.Builder
. Вместо этого объявите переменную-член ad
как AlertDialog
, создайте AlertDialog с помощью построителя и назначьте его объявлению, написав ad = builder.create()
. В методе запуска вызовите ad.cancel()
;
Ответ 2
show()
возвращает AlertDialog
, поэтому сделайте переменную, как показано ниже:
AlertDialog dlg = ad.show();
а затем уволить при необходимости -
dlg.dismiss();