快速弹窗工具类

来源:互联网 发布:李开元 知乎 编辑:程序博客网 时间:2024/06/10 08:38

快速弹窗工具类

实现快速弹窗的封装工具;
支持设置标题和提示内容;
带有确认和取消;

  • PopupWindowAlert.java
  • pop_layout_dialog.xml
  • 使用方法
  • 示例效果

PopupWindowAlert.java

package com.nr917.demo;import android.content.Context;import android.support.v7.app.AlertDialog;import android.text.TextUtils;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.TextView;/** * Desc 通用弹出对话框 */public class PopupWindowAlert {    private Context context;    private View layout;    public static final  int OK = 1;    public static final  int CANCEL = 0;    private TextView tv_dialog_title, tv_pop_content;    private Button btn_no, btn_yes;    private double lat;    private double lng;    private OnItemListener mOnItemListener;    private AlertDialog pop;    private String textYes, textNo;    public PopupWindowAlert(Context context, View layout, String textYes, String textNo, OnItemListener mOnItemListener) {        this.context = context;        this.layout = layout;        this.textYes = textYes;        this.textNo = textNo;        this.mOnItemListener = mOnItemListener;        initViews();    }    public PopupWindowAlert(Context context, View layout, OnItemListener mOnItemListener) {        this.context = context;        this.layout = layout;        this.mOnItemListener = mOnItemListener;        initViews();    }    public interface OnItemListener {        void result(int platform);    }    /**     *  设置POPwindow值     * @param title     *                 对话框标题     * @param content     *                 对话框内容     */    public void setItemData(String title,String content) {        tv_dialog_title.setText(title);        tv_pop_content.setText(content);    }    private void initViews() {        View view = LayoutInflater.from(context).inflate(R.layout.pop_layout_dialog, null);        btn_no = (Button) view.findViewById(R.id.btn_no);        btn_yes = (Button) view.findViewById(R.id.btn_yes);        tv_dialog_title = (TextView) view.findViewById(R.id.tv_dialog_title);        tv_pop_content = (TextView) view.findViewById(R.id.tv_pop_content);        if (!TextUtils.isEmpty(textYes)) {            btn_yes.setText(textYes);        }        if (!TextUtils.isEmpty(textNo)) {            btn_no.setText(textNo);        }        btn_no.setOnClickListener(listener);        btn_yes.setOnClickListener(listener);        AlertDialog.Builder builder = new AlertDialog.Builder(context);        builder.setView(view);        pop = builder.create();        pop.show();    }    private void closePop() {        if (pop != null) {            pop.dismiss();        }    }    private View.OnClickListener listener = new View.OnClickListener() {        @Override        public void onClick(View v) {            closePop();            switch (v.getId()) {                case R.id.btn_no:                    mOnItemListener.result(CANCEL);                    break;                case R.id.btn_yes:                    mOnItemListener.result(OK);                    break;            }        }    };}

pop_layout_dialog.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:background="#FFFFFF"    android:orientation="vertical">    <TextView        android:id="@+id/tv_dialog_title"        android:layout_width="match_parent"        android:layout_height="45dp"        android:gravity="center"        android:text="提示标题"        android:textSize="18sp"        android:textColor="#2776d6" />    <TextView        android:id="@+id/tv_pop_content"        android:layout_width="match_parent"        android:layout_height="60dp"        android:gravity="center"        android:text="提示内容-确定要退出吗?"        android:textColor="#454545" />    <LinearLayout        android:layout_width="match_parent"        android:layout_height="45dp"        android:orientation="horizontal">        <Button            android:id="@+id/btn_no"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="#ffffff"            android:textColor="#2776d6"            android:textSize="18sp"            android:text="取消"/>        <Button            android:id="@+id/btn_yes"            android:layout_width="0dp"            android:layout_height="match_parent"            android:layout_weight="1"            android:background="#ffffff"            android:textColor="#2776d6"            android:textSize="18sp"            android:text="确定"/>    </LinearLayout></LinearLayout>

使用方法

private PopupWindowAlert mDialog;/**     * 退出     * @param view     */    public void onExit(View view) {        mDialog = new PopupWindowAlert(this, findViewById(R.id.activity_main), new PopupWindowAlert.OnItemListener() {            @Override            public void result(int platform) {                if (platform == 1) {                    finish();                }            }        });        mDialog.setItemData("确认退出?", "退出后无法收到消息哦");    }

示例效果

效果展示

0 0
原创粉丝点击