自定义Dialog

来源:互联网 发布:软件商店oppo版本 编辑:程序博客网 时间:2024/06/07 05:45

简单实现。后期会更新。


dialog.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent"><TextView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="职位红包"/>    <TextView        android:id="@+id/tv_hongbao"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="2.00元"/>    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="应聘领红包"/>    <Button        android:id="@+id/btn_lijilingqv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="立即领取"/>    <Button        android:id="@+id/btn_close"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="关闭"/></LinearLayout>

style.xml

 <style name="Dialog" parent="android:style/Theme.Dialog">        <item name="android:background">#00000000</item>        <item name="android:windowBackground">@android:color/transparent</item>        <item name="android:windowNoTitle">true</item>        <item name="android:windowIsFloating">true</item>    </style>

DialogActivity.java

package com.example.chy.challenge.Utils;import android.app.ActionBar;import android.app.Dialog;import android.content.Context;import android.content.DialogInterface;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import com.example.chy.challenge.R;/** * Created by SJL on 2016/11/4. */public class DialogActivity extends Dialog {    public DialogActivity(Context context) {        super(context);    }    public DialogActivity(Context context, int theme) {        super(context, theme);    }    public static class Builder {        private Context context;        private String hongbao;        private String positiveButtonText;        private String negativeButtonText;        private View contentView;        private DialogInterface.OnClickListener positiveButtonClickListener;        private DialogInterface.OnClickListener negativeButtonClickListener;        public Builder(Context context) {            this.context = context;        }        public Builder setHongbao(String hongbao) {            this.hongbao = hongbao;            return this;        }        public Builder setContentView(View v) {            this.contentView = v;            return this;        }        /**         * Set the positive button resource and it's listener         *         * @param positiveButtonText         * @return         */        public Builder setPositiveButton(int positiveButtonText,                                         DialogInterface.OnClickListener listener) {            this.positiveButtonText = (String) context                    .getText(positiveButtonText);            this.positiveButtonClickListener = listener;            return this;        }        public Builder setPositiveButton(String positiveButtonText,                                         DialogInterface.OnClickListener listener) {            this.positiveButtonText = positiveButtonText;            this.positiveButtonClickListener = listener;            return this;        }        public Builder setNegativeButton(int negativeButtonText,                                         DialogInterface.OnClickListener listener) {            this.negativeButtonText = (String) context                    .getText(negativeButtonText);            this.negativeButtonClickListener = listener;            return this;        }        public Builder setNegativeButton(String negativeButtonText,                                         DialogInterface.OnClickListener listener) {            this.negativeButtonText = negativeButtonText;            this.negativeButtonClickListener = listener;            return this;        }        public DialogActivity create() {            LayoutInflater inflater = (LayoutInflater) context                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);            // instantiate the dialog with the custom Theme            final DialogActivity dialog = new DialogActivity(context, R.style.Dialog);            View layout = inflater.inflate(R.layout.dialog_layout, null);            dialog.addContentView(layout, new ActionBar.LayoutParams(                    ActionBar.LayoutParams.FILL_PARENT, ActionBar.LayoutParams.WRAP_CONTENT));            // set the dialog title            // set the confirm button            if (positiveButtonText != null) {                ((Button) layout.findViewById(R.id.btn_lijilingqv))                        .setText(positiveButtonText);                if (positiveButtonClickListener != null) {                    ((Button) layout.findViewById(R.id.btn_lijilingqv))                            .setOnClickListener(new View.OnClickListener() {                                public void onClick(View v) {                                    positiveButtonClickListener.onClick(dialog,                                            DialogInterface.BUTTON_POSITIVE);                                }                            });                }            } else {                // if no confirm button just set the visibility to GONE                layout.findViewById(R.id.btn_lijilingqv).setVisibility(                        View.GONE);            }            // set the cancel button            if (negativeButtonText != null) {                ((Button) layout.findViewById(R.id.btn_close))                        .setText(negativeButtonText);                if (negativeButtonClickListener != null) {                    ((Button) layout.findViewById(R.id.btn_close))                            .setOnClickListener(new View.OnClickListener() {                                public void onClick(View v) {                                    negativeButtonClickListener.onClick(dialog,                                            DialogInterface.BUTTON_NEGATIVE);                                }                            });                }            } else {                // if no confirm button just set the visibility to GONE                layout.findViewById(R.id.btn_close).setVisibility(                        View.GONE);            }            // set the content message            dialog.setContentView(layout);            return dialog;        }    }}

使用

 public void onClick(View view) {                if(view.getId()==R.id.ll_detail){//                    Intent intent = new Intent();//                    intent.setClass(context,)                    DialogActivity.Builder builder= new DialogActivity.Builder(context);                    builder.setHongbao("2.00元");                    builder.setPositiveButton("立即领取", new DialogInterface.OnClickListener() {                        public void onClick(DialogInterface dialog, int which) {                            dialog.dismiss();                            //设置你的操作事项                        }                    });                    builder.setNegativeButton("关闭",                            new android.content.DialogInterface.OnClickListener() {                                public void onClick(DialogInterface dialog, int which) {                                    dialog.dismiss();                                }                            });                    builder.create().show();                }            }


0 0
原创粉丝点击