首页 » 技术分享 » 弹出一个自定义的Diglog

弹出一个自定义的Diglog

 

弹出Diglog,然后自定义上面的内容~

xml布局:

<?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:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:orientation="vertical"
        android:gravity="center">

        <TextView
            android:id="@+id/tv_isSuccess"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="领取成功"
            android:textColor="@color/ico"
            android:textSize="25sp" />

        <TextView
            android:id="@+id/tv_errorMessage"
            android:layout_marginTop="15dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="优惠劵已发放到您的账户" />

    </LinearLayout>


    <TextView
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#999" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/tv_coupon_close"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="关闭"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/tv_coupon_look"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:text="查看"
            android:textSize="18sp" />

    </LinearLayout>

</LinearLayout>

实现类:

public class DialogCoupon implements View.OnClickListener {

    Activity activity;
    Dialog dialog;
    LayoutInflater inflater;
    private TextView tv_coupon_close,tv_coupon_look,tv_isSuccess,tv_errorMessage;
    private View v;
    private WindowManager windowManager;
    private int screenWidth;

    public DialogCoupon(Activity activity) {
        this.activity = activity;
        //把dialog实例化
        dialog = new Dialog(activity);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        init();
    }

    public DialogCoupon(Activity activity, int styleid) {
        this.activity = activity;
        //把dialog实例化
        dialog = new Dialog(activity, styleid);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        init();
    }

    public void init() {
        inflater = LayoutInflater.from(activity);
        windowManager = activity.getWindowManager();
        Display display = windowManager.getDefaultDisplay();
        screenWidth = display.getWidth();
        //把dialog布局填充进来
        v = inflater.inflate(R.layout.dialog_coupon, null, false);
        tv_errorMessage=(TextView)v.findViewById(R.id.tv_errorMessage);
        tv_isSuccess=(TextView)v.findViewById(R.id.tv_isSuccess);
        tv_coupon_close = (TextView) v.findViewById(R.id.tv_coupon_close);
        tv_coupon_look = (TextView) v.findViewById(R.id.tv_coupon_look);
        tv_coupon_look.setOnClickListener(this);
        tv_coupon_close.setOnClickListener(this);
        dialog.setContentView(v);
        //在这给dialog设置宽高
        Window window = dialog.getWindow();
        WindowManager.LayoutParams layoutParams = window.getAttributes();
        layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
        window.setAttributes(layoutParams);
    }

    public void setText(String isSuccess,String errorMessage){//调用此方法可以对Diglog的文字进行改变
        if (!TextUtils.isEmpty(isSuccess)||!TextUtils.isEmpty(errorMessage)) {
            tv_isSuccess.setText(isSuccess);
            tv_errorMessage.setText(errorMessage);
        }
    }

    public void show() {
        if (dialog != null && !dialog.isShowing()) {
            dialog.show();
        }
    }

    public void hide() {
        if (dialog != null && dialog.isShowing()) {
            dialog.dismiss();
        }
    }

    public void setCancelable(boolean value) {
        dialog.setCancelable(value);
    }


    @Override
    public void onClick(View view) {
	//在这里对dialog布局的btn进行操作
        switch (view.getId()) {
            case R.id.tv_coupon_look:
                Intent intent = new Intent(activity, CouponShopActivity.class);
                activity.startActivity(intent);
                dialog.dismiss();//这里做了跳转的功能
                break;
            case R.id.tv_coupon_close:
                if (dialog.isShowing()) {
                    dialog.dismiss();
                }
                break;
            default:
                break;
        }
    }

}

MainActivity上面的应用:

public class MainActivity extends Activity{

	private DialogCoupon dialogCoupon;//领取优惠券弹出的diglog

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gold);
		showCoupon();
    }

    //弹出diglog
    private void showCoupon() {
        dialogCoupon = new DialogCoupon(this);
        dialogCoupon.show();
    }

}

转载自原文链接, 如需删除请联系管理员。

原文链接:弹出一个自定义的Diglog,转载请注明来源!

0