我想可能實現你要什麼的,只是有你的DialogFragment內三種不同的聽衆,然後對每個制定者的最簡單方法。然後,當您將警報對話框構建爲片段時,您可以定義每個偵聽器的onClick方法在調用方法中的作用。因此,像這樣:
protected DialogInterface.OnClickListener mListener1;
protected DialogInterface.OnClickListener mListener2;
protected DialogInterface.OnClickListener mListener3;
public void setListener1(final YourDialogFragment.OnClickListener passedListener) {
mListener1 = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listener.onClick(getActivity(), dialog, which);
}
};
}
然後調用DialogFragment的代碼裏面,調用是這樣的:
// Building the Dialog Fragment here
YourDialogFragment.setListener1(new YourDialogFragment.OnClickListener() {
@Override
public void onClick(FragmentActivity activity, DialogInterface dialog, int which) {
// Whatever you want to happen when you click goes here
}
});
理想情況下,你做某種幫手所以你沒有明確只取參數從一個活動中調用set方法,但這是它的要點。
嗨韋斯,我使用的界面是這樣 公共接口testDialogListener { public void onDialogClick(DialogFragment dialog,int which); } –
我是否應該使用您指定的DialogInterface.OnClickListener(mListener1等)而不是自定義的,然後爲每個實現內置的onClick方法? –
當我嘗試按照上述操作時遇到問題 - 最終YourDialogFragment.OnClickListener passedListener。最後,我試圖創建自己的界面:/ –