package com.zpm.ticket.util;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.zpm.ticket.R;
import com.zpm.ticket.base.constant.DialogType;
/**
* Created by zxf on 2016/7/22.
*/
public class AppDialog extends Dialog {
private Context context;
private String dialog_text_str;
private String dialog_one_button_str;
private String dialog_two_button_str;
private ClickListenerInterface clickListenerInterface;
private int type;
public interface ClickListenerInterface {
public void doConfirm();
public void doCancel();
}
public AppDialog(Context context, String dialog_text, int type, String dialog_one_text, String dialog_two_text) {
super(context, R.style.Dialog_bocop);
this.context = context;
this.dialog_text_str = dialog_text;
this.dialog_one_button_str = dialog_one_text;
this.dialog_two_button_str = dialog_two_text;
this.type = type;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
}
protected void initOneBtn() {
TextView dialog_one_button = (TextView) findViewById(R.id.dialog_one_button);
dialog_one_button.setText(dialog_one_button_str);
dialog_one_button.setOnClickListener(new clickListener());
}
protected void initTwoBtn() {
TextView dialog_two_button = (TextView) findViewById(R.id.dialog_two_button);
dialog_two_button.setText(dialog_two_button_str);
dialog_two_button.setOnClickListener(new clickListener());
}
public void initImgBtn(int id) {
ImageView dialog_image_view = (ImageView) findViewById(R.id.dialog_image_view);
//dialog_image_view.setBackgroundDrawable(context.getResources().getDrawable(id));
//dialog_image_view.setImageResource(id);
dialog_image_view.setImageDrawable(context.getResources().getDrawable(id));
}
/**
* 控件的初始化
*/
public void init() {
if (type == DialogType.NO_IMG_ONE.getCode()) {//无图一按钮
setContentView(R.layout.dialog_one_button);
initOneBtn();
} else if (type == DialogType.NO_IMG_TWO.getCode()) {//无图两按钮
setContentView(R.layout.dialog_two_button);
initOneBtn();
initTwoBtn();
} else if (type == DialogType.IMG_NO_BTN.getCode()) {//有图无按钮
setContentView(R.layout.dialog_img_no_button);
} else if (type == DialogType.IMG_ONE_BTN.getCode()) {//有图一按钮
setContentView(R.layout.dialog_img_one_button);
initOneBtn();
} else if (type == DialogType.IMG_TWO_BTN.getCode()) {//有图两个按钮
setContentView(R.layout.dialog_img_two_button);
initOneBtn();
initTwoBtn();
}
TextView dialog_text = (TextView) findViewById(R.id.dialog_text);
dialog_text.setText(dialog_text_str);
}
/**
* 点击事件的注册
* @param clickListenerInterface
*/
public void setClicklistener(ClickListenerInterface clickListenerInterface) {
this.clickListenerInterface = clickListenerInterface;
}
/**
* click事件的实现
*/
private class clickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.dialog_one_button:
clickListenerInterface.doConfirm();
break;
case R.id.dialog_two_button:
clickListenerInterface.doCancel();
break;
}
}
}
}
引用方法:
final AppDialog appDialog = new AppDialog(this, status, DialogType.NO_IMG_ONE.getCode(), "确定", "取消");
appDialog.show();
appDialog.setClicklistener(new AppDialog.ClickListenerInterface() {
@Override
public void doConfirm() {
appDialog.dismiss();
}
@Override
public void doCancel() {
appDialog.dismiss();
}
});
R.style.Dialog_bocop:文件
<style name="Dialog_bocop">
<item name="android:windowBackground">@color/color_77000000</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
</style>
R.layout.dialog_one_button:文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:layout_width="250dp"
android:layout_height="182dp"
android:background="@color/color_ffffff"
>
<TextView
android:id="@+id/dialog_one_button"
android:layout_width="match_parent"
android:layout_height="@dimen/size_dp_40"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|center_horizontal"
style="@style/main_text_ffffff_16sp"
android:background="@color/color_00a8ff"
android:text="@string/ok_btn"
/>
<TextView
android:id="@+id/dialog_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/dialog_one_button"
android:gravity="center_horizontal|center_vertical"
style="@style/main_text_343434_14sp"/>
</RelativeLayout>
</LinearLayout>
R.layout.dialog_two_button:文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:layout_width="250dp"
android:layout_height="182dp"
android:background="@color/color_ffffff"
>
<LinearLayout
android:id="@+id/dialog_two_rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/dialog_one_button"
android:layout_width="1dp"
android:layout_weight="1"
android:layout_height="@dimen/size_dp_40"
android:gravity="center_vertical|center_horizontal"
style="@style/main_text_ffffff_16sp"
android:background="@color/color_00a8ff"
android:text="@string/ok_btn"
/>
<TextView
android:layout_width="0.5dp"
android:layout_height="@dimen/size_dp_40"
android:background="@color/color_dbdbdb"
></TextView>
<TextView
android:id="@+id/dialog_two_button"
android:layout_width="1dp"
android:layout_weight="1"
android:layout_height="@dimen/size_dp_40"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|center_horizontal"
style="@style/main_text_ffffff_16sp"
android:background="@color/color_00a8ff"
android:text="@string/ok_cancel"
/>
</LinearLayout>
<TextView
android:id="@+id/dialog_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/dialog_two_rel"
android:gravity="center_horizontal|center_vertical"
style="@style/main_text_343434_14sp"/>
</RelativeLayout>
</LinearLayout>
R.layout.dialog_img_no_button:文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:layout_width="250dp"
android:layout_height="182dp"
android:background="@color/color_ffffff"
>
<ImageView
android:id="@+id/dialog_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_dp_20"
android:src="@drawable/print"/>
<TextView
android:id="@+id/dialog_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_dp_25"
android:layout_below="@+id/dialog_image_view"
android:gravity="center_horizontal|center_vertical"
android:text="正在打印中"
style="@style/main_text_343434_14sp"/>
</RelativeLayout>
</LinearLayout>
R.layout.dialog_img_one_button:文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:layout_width="250dp"
android:layout_height="182dp"
android:background="@color/color_ffffff"
>
<TextView
android:id="@+id/dialog_one_button"
android:layout_width="match_parent"
android:layout_height="@dimen/size_dp_40"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|center_horizontal"
style="@style/main_text_ffffff_16sp"
android:background="@color/color_00a8ff"
android:text="@string/ok_btn"
/>
<TextView
android:id="@+id/dialog_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/dialog_one_button"
android:gravity="center_horizontal|center_vertical"
android:text="票码无效"
android:layout_marginBottom="@dimen/size_dp_10"
style="@style/main_text_343434_14sp"/>
<ImageView
android:id="@+id/dialog_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/dialog_text"
android:layout_marginBottom="@dimen/size_dp_10"
android:src="@drawable/ticket_wrong"/>
</RelativeLayout>
</LinearLayout>
R.layout.dialog_img_two_button:文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/transparent"
android:gravity="center_horizontal|center_vertical"
>
<RelativeLayout
android:layout_width="250dp"
android:layout_height="182dp"
android:background="@color/color_ffffff"
>
<LinearLayout
android:id="@+id/dialog_img_two_rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/dialog_one_button"
android:layout_width="1dp"
android:layout_weight="1"
android:layout_height="@dimen/size_dp_40"
android:gravity="center_vertical|center_horizontal"
style="@style/main_text_ffffff_16sp"
android:background="@color/color_00a8ff"
android:text="@string/ok_btn"
/>
<TextView
android:layout_width="0.5dp"
android:layout_height="@dimen/size_dp_40"
android:background="@color/color_dbdbdb"
></TextView>
<TextView
android:id="@+id/dialog_two_button"
android:layout_width="1dp"
android:layout_weight="1"
android:layout_height="@dimen/size_dp_40"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|center_horizontal"
style="@style/main_text_ffffff_16sp"
android:background="@color/color_00a8ff"
android:text="@string/ok_cancel"
/>
</LinearLayout>
<TextView
android:id="@+id/dialog_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/dialog_img_two_rel"
android:gravity="center_horizontal|center_vertical"
android:text="打印失败,请检查打印机"
android:layout_marginBottom="@dimen/size_dp_10"
style="@style/main_text_343434_14sp"/>
<ImageView
android:id="@+id/dialog_image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/dialog_text"
android:layout_marginBottom="@dimen/size_dp_10"
android:src="@drawable/print_wrong"/>
</RelativeLayout>
</LinearLayout>