package com.example.qingyangdemo.ui; import com.example.qingyangdemo.R; import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; /** * 提示框 * * @author 赵庆洋 * */ public class CustomDialog { private View mParent; private PopupWindow popupWindow; private LinearLayout mRootLayout; private LayoutParams layoutParams; // popupwindow 必须有一个parentView,所以必须加这个参数 public CustomDialog(Context context, View parent) { this.mParent = parent; LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // 加载布局文件 mRootLayout = (LinearLayout) layoutInflater.inflate( R.layout.custom_dialog, null); layoutParams = new LayoutParams(LayoutParams.WRAP_CONTENT, layoutParams.WRAP_CONTENT); } /** * 设置dialog的标题 * * @param title */ public void setTitle(String title) { TextView mTitle = (TextView) mRootLayout .findViewById(R.id.custom_dialog_title); mTitle.setText(title); } /** * 设置dialog的主体内容 * * @param title */ public void setMessage(String message) { TextView mMessage = (TextView) mRootLayout .findViewById(R.id.custom_dialog_content_text); mMessage.setText(message); } /** * 设置dialog的确定按钮 */ public void setPositiveButton(String text, OnClickListener onClickListener) { final Button buttonOk = (Button) mRootLayout .findViewById(R.id.custom_dialog_btn_ok); buttonOk.setText(text); buttonOk.setOnClickListener(onClickListener); buttonOk.setVisibility(View.VISIBLE); } /** * 设置dialog的取消按钮 */ public void setNegativeButton(String text, OnClickListener onClickListener) { final Button buttonCancel = (Button) mRootLayout .findViewById(R.id.custom_dialog_btn_cancel); buttonCancel.setText(text); buttonCancel.setOnClickListener(onClickListener); buttonCancel.setVisibility(View.VISIBLE); } /** * 替换dialog的主体布局 * * @param layout */ public void setContentLayout(View layout) { TextView message = (TextView) mRootLayout .findViewById(R.id.custom_dialog_content_text); message.setVisibility(View.GONE); LinearLayout contentLayout = (LinearLayout) mRootLayout .findViewById(R.id.custom_dialog_contentview); contentLayout.addView(layout); } /** * 设置dialog的长宽 * * @param width * @param height */ public void setLayoutParams(int width, int height) { layoutParams.width = width; layoutParams.height = height; } /** * 显示dialog */ public void show() { if (popupWindow == null) { popupWindow = new PopupWindow(mRootLayout, layoutParams.width, layoutParams.height); popupWindow.setFocusable(true); } popupWindow.showAtLocation(mParent, Gravity.CENTER, Gravity.CENTER, Gravity.CENTER); } /** * 取消dialog的显示 */ public void dismiss() { if (popupWindow == null) { return; } popupWindow.dismiss(); } }