activity
private void showDialog1() { message = "您输入的邮箱后缀不是公司邮箱地址\n将导致您的借款审核不通过,请重新\n填写。"; DialogBQT diaolog = new DialogBQT(this); diaolog.setTitleAndMessageAndIcon(null, message, R.drawable.icon_email); diaolog.setOneButtonText("我知道了", -1); diaolog.show(); }private void showDialog2() { message = "您已申请了我们公司的aaa,\n正在处理中,请勿重复申请。"; DialogBQT diaolog = new DialogBQT(this) { @Override public void onSureClick(View v) { super.onSureClick(v); startActivity(new Intent(A_Elite_Loan.this, Activity_LoanList.class)); } }; diaolog.setTitleAndMessageAndIcon(null, message, R.drawable.icon_email); diaolog.setButtonText("查看我的借款", "返回", -1, 0xff999999); diaolog.show(); }private void showDialog3() { message = "您输入的邮箱后缀不是公司邮箱地址\n将导致您的借款审核不通过,请重新\n填写。"; DialogBQT diaolog = new DialogBQT(this); diaolog.setTitleAndMessageAndIcon("提示", message, R.drawable.icon_email); diaolog.setMiddleButtonText("中间按钮",-1); diaolog.show();
}
dialog
public class DialogBQT extends Dialog implements OnClickListener { private TextView title, message;//标题和消息内容 private ImageView iv_icon;//图标 private Button cancel, middle, confirm;//3个按钮 private LinearLayout line_left, line_right;//2条线 /** * 仿iOS风格的AlertView */ public DialogBQT(Context context) { this(context, R.style.alertviewstyle); } public DialogBQT(Context context, int theme) { super(context, theme); initView(); } private void initView() { setContentView(R.layout.dialog_withicon); title = (TextView) findViewById(R.id.title); message = (TextView) findViewById(R.id.message); iv_icon = (ImageView) findViewById(R.id.iv_icon); cancel = (Button) findViewById(R.id.cancel); middle = (Button) findViewById(R.id.middle); confirm = (Button) findViewById(R.id.confirm); line_left = (LinearLayout) findViewById(R.id.line_left); line_right = (LinearLayout) findViewById(R.id.line_right); cancel.setOnClickListener(this); middle.setOnClickListener(this); confirm.setOnClickListener(this); } //***************************************************常用设置*************************************** /** * 标题、消息内容、图标,为空时不显示,为-1时不显示 */ public void setTitleAndMessageAndIcon(String titleString, String messageString, int res) { if (titleString == null) title.setVisibility(View.GONE); else title.setText(titleString); if (messageString == null) message.setVisibility(View.GONE); else message.setText(messageString); if (res == -1) iv_icon.setVisibility(View.GONE); else iv_icon.setImageResource(res); } /** * 显示三两个按钮时,确认(右)和取消(左)文本及颜色,为-1时不设置 */ public void setButtonText(String confirmString, String cancelString, int confirmColor, int cancelColor) { confirm.setText(confirmString); cancel.setText(cancelString); if (confirmColor != -1) confirm.setTextColor(confirmColor); if (cancelColor != -1) cancel.setTextColor(cancelColor); } /** * 显示三个按钮时,把中间的按钮显示出来 */ public void setMiddleButtonText(String text, int color) { middle.setVisibility(View.VISIBLE); line_right.setVisibility(View.VISIBLE); middle.setText(text); if (color != -1) middle.setTextColor(color); } /** * 显示一个按钮时 */ public void setOneButtonText(String text, int color) { cancel.setVisibility(View.GONE); line_left.setVisibility(View.GONE); confirm.setText(text); if (color != -1) confirm.setTextColor(color); confirm.setBackgroundResource(R.drawable.single_btn_select); } //***************************************************三个按钮的点击事件*************************************** @Override public void onClick(View v) { switch (v.getId()) { case R.id.confirm: dismiss(); onSureClick(v); break; case R.id.cancel: dismiss(); onCancleClick(v); break; case R.id.middle: dismiss(); onMiddleClick(v); break; default: break; } } private void onMiddleClick(View v) { } public void onSureClick(View v) { } public void onCancleClick(View v) { } //***************************************************获取控件*************************************** public TextView getTitle() { return title; } public TextView getMessage() { return message; } public ImageView getIv_icon() { return iv_icon; } public Button getCancel() { return cancel; } public Button getMiddle() { return middle; } public Button getConfirm() { return confirm; } public LinearLayout getLine_left() { return line_left; } public LinearLayout getLine_right() { return line_right; }}layout
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@drawable/dialog_bg" android:minWidth="300dp" android:orientation="vertical" android:paddingTop="30dp"> <TextView android:id="@+id/title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="标题" android:textColor="@android:color/black" android:textSize="20sp"/> <ImageView android:id="@+id/iv_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/icon_email"/> <TextView android:id="@+id/message" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:padding="20dp" android:text="内容" android:textColor="@android:color/black" android:textSize="@dimen/main_text_default"/> <LinearLayout android:layout_width="match_parent" android:layout_height="1dip" android:layout_marginTop="10dp" android:background="#D1D1D1"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/cancel" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/left_btn_select" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="@string/cancel" android:textColor="@color/btntextcolor" android:textSize="@dimen/main_text_default"/> <LinearLayout android:id="@+id/line_left" android:layout_width="1dp" android:layout_height="match_parent" android:background="#D1D1D1" android:orientation="horizontal"/> <Button android:id="@+id/middle" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/left_btn_select" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="@string/dismiss" android:textColor="@color/btntextcolor" android:textSize="@dimen/main_text_default" android:visibility="gone"/> <LinearLayout android:id="@+id/line_right" android:layout_width="1dp" android:layout_height="match_parent" android:background="#D1D1D1" android:orientation="horizontal" android:visibility="gone"/> <Button android:id="@+id/confirm" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/right_btn_select" android:paddingBottom="15dp" android:paddingTop="15dp" android:text="@string/confirm" android:textColor="@color/btntextcolor" android:textSize="@dimen/main_text_default"/> </LinearLayout></LinearLayout>background
样式 <style name="alertviewstyle" parent="@android:style/Theme.Dialog"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/dialog_background</item> <item name="android:backgroundDimEnabled">true</item> </style>根布局背景<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item><shape> <solid android:color="#fff" /> <corners android:radius="15px" /> </shape></item></selector>按钮背景_左边(注意,不同位置的按钮背景是不一样的)<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/check_left_btn" android:state_pressed="true"/> <item android:drawable="@drawable/left_btn" /></selector>按钮背景_check_left_btn<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 填充的颜色 --> <solid android:color="#EAEAEA" /> <!-- 设置按钮的四个角为弧形 --> <!-- android:radius 弧形的半径 --> <corners android:bottomLeftRadius="15px" /> </shape> 按钮背景_left_btn
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 填充的颜色 --> <solid android:color="#FFFFFF" /> <!-- 设置按钮的四个角为弧形 --> <!-- android:radius 弧形的半径 --> <corners android:bottomLeftRadius="15px" /> </shape>