自定义AlertDialog

来源:互联网 发布:教育信息化软件 编辑:程序博客网 时间:2024/05/17 04:37

直接上代码
java

public class MyDialog implements View.OnClickListener{    private Dialog dialog;    private Context context;    private Button queding;    //    设置标题    private String title;    //    设置content,为View类型    private View content;    private MyDialogListener myDialogListener;    public MyDialog(Context context,MyDialogListener myDialogListener) {        this.context = context;        this.myDialogListener = myDialogListener;    }    public void showDialog() {        dialog = new Dialog(context, R.style.style);        View view = LayoutInflater.from(context).inflate(R.layout.dialog, null);        TextView textView = (TextView) view.findViewById(R.id.title);        LinearLayout linear = (LinearLayout) view.findViewById(R.id.linear);        queding = (Button) view.findViewById(R.id.queding);        queding.setOnClickListener(this);//        Title        if (title == null) {            textView.setVisibility(View.GONE);        } else {            textView.setText(title);        }//        content        if (content == null) {            linear.setVisibility(View.GONE);        } else {            linear.addView(content);        }        dialog.setContentView(view);        dialog.show();    }    public void setTitle(String string) {        title = string;    }    public void setContent(View view) {        this.content = view;    }    public void onClick(View v) {        myDialogListener.onClick(v);    }    public interface MyDialogListener {        public void onClick(View view);    }}

style

    <style name="style" parent="@android:style/Theme.Dialog">        <!--窗框-->        <item name="android:windowFrame">@null</item>        <!--窗口浮动-->        <item name="android:windowIsFloating">true</item>        <!--窗口半透明-->        <item name="android:windowIsTranslucent">false</item>        <!--窗口无标题-->            <item name="android:windowNoTitle">true</item>        <item name="android:background">#fff</item>        <item name="android:windowBackground">@color/colorAccent</item>        <!--背景模糊的功能-->        <item name="android:backgroundDimEnabled">true</item>    </style>

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"    android:gravity="center"    >    <TextView        android:layout_width="260dp"        android:layout_height="40dp"        android:text=""        android:id="@+id/title"        android:gravity="center"        />    <LinearLayout        android:id="@+id/linear"        android:layout_width="260dp"        android:layout_height="wrap_content"        android:orientation="vertical"        />    <LinearLayout        android:layout_width="260dp"        android:layout_height="40dp"        android:orientation="horizontal">        <Button            android:layout_width="130dp"            android:layout_height="40dp"            android:text="取消"            android:id="@+id/quxiao"            />        <Button            android:layout_width="130dp"            android:layout_height="40dp"            android:text="确定"            android:id="@+id/queding"            />    </LinearLayout></LinearLayout>

主Activity

MyDialog myDialog = new MyDialog(this, new MyDialog.MyDialogListener() {            public void onClick(View view) {                Toast.makeText(MainActivity.this,"小明",Toast.LENGTH_SHORT).show();            }        });        myDialog.setTitle("xiaoming");        View view = LayoutInflater.from(this).inflate(R.layout.dialog1,null);        myDialog.setContent(view);        myDialog.showDialog();
0 0