Android自定义弹出框

DialogMessage是个工具类,只需要创建该对象,把需要显示到数据传到该类里显示出来,就可以直接使用。下面上代码:

package cn.com.szh.infoColloction.ui;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import cn.com.szh.infoColloction.R;

public class DialogMessage extends Dialog {
    private TextView tv_dialogmessage_content;
    private TextView tv_dialogmessage_cancel;
    private TextView tv_dialogmessage_ok;
    private AlertDialog alertDialog;

    public DialogMessage(Context context) {
        super(context);
        alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.show();
        init();

    }

    private void init() {
        Window window = alertDialog.getWindow();
        window.setContentView(R.layout.dialog_message);
        tv_dialogmessage_content = (TextView) window.findViewById(R.id.tv_dialogmessage_content);
        tv_dialogmessage_cancel = (TextView) window.findViewById(R.id.tv_dialogmessage_cancel);
        tv_dialogmessage_ok = (TextView) window.findViewById(R.id.tv_dialogmessage_ok);
    }

    public DialogMessage setMessage(String message) {
        tv_dialogmessage_content.setText(message);
        return this;
    }

    public TextView getPositiveButton() {
        return tv_dialogmessage_ok;
    }

    public TextView getNegetiveButton() {
        return tv_dialogmessage_cancel;
    }

    public void dismiss() {
        alertDialog.dismiss();
    }
}

布局文件如下:

<?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="260dp"
       android:layout_height="120dp"
       android:background="@drawable/dialog_message_shape"
       android:orientation="vertical"
       android:layout_gravity="center">
    <TextView
        android:id="@+id/tv_dialogmessage_content"
        android:layout_width="260dp"
        android:layout_height="79dp"
        android:gravity="center"
        android:text="确定要清除所选内容"
        android:textAppearance="@style/style_dialogmessage_text"
        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/color_low"
        />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        >
        <TextView
            android:id="@+id/tv_dialog_center_line"
            android:layout_width="0.5dp"
            android:layout_height="match_parent"
            android:layout_centerHorizontal="true"
            android:background="@color/color_low"
            />
        <TextView
            android:id="@+id/tv_dialogmessage_cancel"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_toLeftOf="@id/tv_dialog_center_line"
            android:text="@string/cancel"
            android:clickable="true"
            android:gravity="center"
            android:textAppearance="@style/style_dialogmessage_btn_text"
            />
         <TextView
            android:id="@+id/tv_dialogmessage_ok"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_toRightOf="@id/tv_dialog_center_line"
            android:text="@string/ok"
            android:gravity="center"
            android:textAppearance="@style/style_dialogmessage_btn_text"
            />
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>

布局文件是自定义的,可以根据需求进行修改。

用法如下:

        DialogMessage dialogMessage = new DialogMessage(this);

        dialogMessage.setMessage("要显示数据");

        dialogMessage.getPositiveButton().setOnClickListener(

                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

        });

        dialogMessage.getNegetiveButton().setOnClickListener(

                new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {

                    }
        });

猜你喜欢

转载自blog.csdn.net/little_soybean/article/details/79059027