2012-01-20 20 views
5

AlertDialog.Builder'in akışkan arayüzünü kullanmak istiyorum ancak DismissListener ve ShowListener'ı ekleme noktasına geldiğimde, oluşturucudaki create() öğemi yaptıktan sonra iletişim nesnesine iliştirmem ve eklemem gerekiyor. Orada olmadıklarını bilen var mı? Özel P üyesi yüzünden onu genişletemiyorum ... Dünyanın sonu ya da bir şey değil, neden orada olmadığını merak ediyorum. API düzeyinde 17. DanAlertDialog.Builder setOnDismissListener veya setOnShowListener yöntemlerini neden içermiyor?

cevap

1

ben .. benim .create() çağrısı sonrası eklenti yapmak

7

bu yöntemi denediniz ..

AlertDialog dlg = builder.create(); 
lg.setOnDismissListener(new DialogInterface.OnDismissListener() { 
@Override 
public void onDismiss(final DialogInterface dialog) { 
//Do some work 
} 
}); 
return dlg; 
+1

Evet, söz setOnDismissListener (DialogInterface.OnDismissListener onDismissListener) yöntemi kullanabilirsiniz Yapmayı tercih edebilecek: new AlertDialog.Builder (ctx) .setTitle (başlık) .setMessage (msg) .setPositiveButton (buttonTitle, listener) .setDismissListener (dismissListener) .show() – danb

+1

@danb Bunu yaptıktan sonra Oluştur() çağrısı, ancak Builder nesnesinde? Bu işe yaramayacak. create(), Builder'ın size bir AlertDialog vermesidir, ancak bir Builder nesnesinin kendisi üzerinde dinleyicileri ayarlamak için herhangi bir yöntemi yoktur. – LuxuryMode

+2

Oluşturucunun, dinleyicileri ayarlamak için birkaç yöntemi vardır; Bu setOnCancelListener, setOnItemSelectedListener ve setOnKeyListener var .. Sadece api neden eksik görünüyor merak ediyorum. – danb

İlgili konular