android 自定义AlertDialog

xml:

alter_dialog_two

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="25dp"
        android:layout_marginRight="25dp"
        android:background="@drawable/line_gray_cancel"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tv_alter_content"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:padding="10dp"
            android:text="1111"
            android:textColor="@android:color/black"
            android:textSize="@dimen/dialog_font" />

        <View
            style="@style/LineHorizontal.Gray_d8"
            android:layout_marginLeft="1dp"
            android:layout_marginRight="1dp" />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="35dp"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/btn_two_cancel"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/sel_alter_yes_bg"
                android:gravity="center"
                android:text="@string/cancel"
                android:textColor="@color/blue_03"
                android:textSize="@dimen/dialog_font" />

            <View
                android:layout_width="1dp"
                android:layout_height="match_parent"
                android:layout_marginBottom="1dp"
                android:background="@color/gray_d8" />

            <Button
                android:id="@+id/btn_two_ok"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@drawable/sel_alter_no_bg"
                android:gravity="center"
                android:text="@string/ok"
                android:textColor="@color/blue_03"
                android:textSize="@dimen/dialog_font" />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>
TwoBtnAlterDialog
package com.android.hcframe.view;

import android.app.Dialog;
import android.content.Context;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;

import com.android.hcframe.R;

public class TwoBtnAlterDialog extends Dialog {

    private static TwoBtnAlterDialog twoBtnDialog = null;
    public static TextView tvAlterContent;
    public static Button btn_ok, btn_cancel;

    public TwoBtnAlterDialog(Context context) {
        super(context);
    }

    public TwoBtnAlterDialog(Context context, int theme) {
        super(context, theme);
    }

    public static TwoBtnAlterDialog createDialog(Context context,String msg) {
        twoBtnDialog = new TwoBtnAlterDialog(context, R.style.CustomAlterDialog);
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.alter_dialog_two, null);
        twoBtnDialog.setContentView(view);
        Window win = twoBtnDialog.getWindow();
        win.getAttributes().gravity = Gravity.CENTER;
//        win.setWindowAnimations(R.style.dialogWindowAnimTop);
        
        tvAlterContent = (TextView) twoBtnDialog.findViewById(R.id.tv_alter_content);
        tvAlterContent.setText(msg);
        btn_ok = (Button) twoBtnDialog.findViewById(R.id.btn_two_ok);
        btn_cancel = (Button) twoBtnDialog.findViewById(R.id.btn_two_cancel);
        return twoBtnDialog;
    }

}

java调用:

 private static TwoBtnAlterDialog alterDialog;

    public static void twoBtnAlterDialog(final Context context, String msg) {
        if (alterDialog == null) {
            alterDialog = TwoBtnAlterDialog.createDialog(context, msg);
            TwoBtnAlterDialog.btn_ok.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(context, "ok", Toast.LENGTH_SHORT).show();
                }
            });
            TwoBtnAlterDialog.btn_cancel.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(context, "cancel", Toast.LENGTH_SHORT).show();
                }
            });
            alterDialog.show();
        } else {
            alterDialog.dismiss();
            alterDialog = null;
        }

    }

 

posted @ 2016-04-11 16:22  星辰之力  阅读(206)  评论(0编辑  收藏  举报