2012-01-20 7 views
5

AlertDialog.Builder의 유체 인터페이스를 사용하고 싶습니다. 그러나 DismissListener 및 ShowListener를 추가 할 시점에 도달했을 때 작성자에게 create()를 수행 한 후 중단하고 대화 상자 객체에 추가해야합니다. 아무도 왜 거기에 있지 않은지 아는 사람 있습니까? 나는 사립 P 회원 때문에 그것을 연장 할 수 없다 ... 그것은 세상이나 다른 것의 끝이 아니며, 왜 그것이 거기에 없는지 궁금하다. API 레벨 17에서AlertDialog.Builder에 setOnDismissListener 또는 setOnShowListener 메서드가없는 이유는 무엇입니까?

답변

1

당신은 내가 .. 내 .create() 호출 후에 추가 할 것을

7

당신은이 방법을 봤어 ..

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

예, 제가 언급 setOnDismissListener (DialogInterface.OnDismissListener onDismissListener) 방법을 사용할 수 있습니다 새로운 AlertDialog.Builder (ctx) .setTitle (제목) .setMessage (msg) .setPositiveButton (buttonTitle, listener) .setDismissListener (dismissListener) .show() – danb

+1

@danb 당신은 create()를 호출하지만 Builder 객체를 호출합니까? 그게 효과가 없을거야. create()는 Builder가 AlertDialog를 제공하는 방법이지만 Builder 객체 자체에는 리스너를 설정하는 메소드가 없습니다. – LuxuryMode

+2

빌더에는 청취자를 설정하는 여러 가지 방법이 있지만 여기서는 두 가지를 언급하지 않습니다. 그것은 setOnCancelListener, setOnItemSelectedListener 및 setOnKeyListener를가집니다. 왜 API가 불완전한 것일까 궁금합니다. – danb