上網查了不少資料,一直看到說使用getButton
但一直出錯顯示沒有getButton這方法,那時才意識到自己使用的不是AlertDialog 是 Dialog (自訂義 繼承AlertDialog.Builder)
將類型改為AlertDialog並在show()之後設定按鈕事件即可
import android.support.v7.app.AlertDialog;
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage("Test for preventing dialog close");
AlertDialog dialog = builder.create();
dialog.show();
//Overriding the handler immediately after show is probably a better approach than OnShowListener as described below
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Boolean wantToCloseDialog = false;
//Do stuff, possibly set wantToCloseDialog to true then...
if(wantToCloseDialog)
dismiss();
//else dialog stays open. Make sure you have an obvious way to close the dialog especially if you set cancellable to false.
}
});
留言列表