public class CustomDialog extends Dialog { public CustomDialog(Context context, int theme) { super(context, theme); } public CustomDialog(Context context) { super(context); } /** * Helper class for creating a custom dialog */ public static class Builder { private Context context; private String message; private View contentView; public Builder(Context context) { this.context = context; } /** * Set the Dialog message from String * * @return */ public Builder setMessage(String message) { this.message = message; return this; } /** * Set the Dialog message from resource * * @return */ public Builder setMessage(int message) { this.message = (String) context.getText(message); return this; } /** * Set a custom content view for the Dialog. * If a message is set, the contentView is not * added to the Dialog... * * @param v * @return */ public Builder setContentView(View v) { this.contentView = v; return this; } /** * Create the custom dialog */ public CustomDialog create() { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); final CustomDialog dialog = new CustomDialog(context, R.style.dialog); // Window win = dialog.getWindow(); // WindowManager.LayoutParams params = new WindowManager.LayoutParams(); // params.y = 800; // win.setAttributes(params); View layout = inflater.inflate(R.layout.toast_dialog, null); dialog.addContentView(layout, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); // set the content message if (message != null) { ((TextView) layout.findViewById(R.id.bg_toast)).setText(message); } dialog.setContentView(layout); return dialog; } } }