天天看点

Androidの自定义对话框AlertDialog(一)Androidの自定义对话框AlertDialog

Androidの自定义对话框AlertDialog

学习Androidの自定义对话框AlertDialog,权当做下笔记,方便以后使用,或者其他朋友。

Androidの自定义对话框AlertDialog(一)Androidの自定义对话框AlertDialog

1. 自定义一个AlertDialog 时候,创建自己的Dialog对象,然后利用setContentView() 添加自定义布局即可。 这里是主要初始化的对话框代码:

private void showCustomMessage(String pTitle, final String pMsg) {
        final Dialog lDialog = new Dialog(MainMenuActivity.this,
				android.R.style.Theme_Translucent_NoTitleBar);
	lDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
	lDialog.setContentView(R.layout.view_okcanceldialogview);
	((TextView) lDialog.findViewById(R.id.dialog_title)).setText(pTitle);
	((TextView) lDialog.findViewById(R.id.dialog_message)).setText(pMsg);
	((Button) lDialog.findViewById(R.id.ok)).setText("Ok");
	((Button) lDialog.findViewById(R.id.cancel))
				.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						// write your code to do things after users clicks
						// CANCEL
						lDialog.dismiss();
					}
				});
	((Button) lDialog.findViewById(R.id.ok))
				.setOnClickListener(new OnClickListener() {

					@Override
					public void onClick(View v) {
						// write your code to do things after users clicks OK
						lDialog.dismiss();
					}
				});
	lDialog.show();

}
           

我们看下布局文件xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal|center_vertical"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dip"
        android:layout_marginRight="20dip"
        android:background="@drawable/alert"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/dialog_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="17dip"
            android:text="About to call 323"
            android:textColor="#ffffff"
            android:textSize="16dip"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/dialog_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dip"
            android:gravity="center_horizontal"
            android:text="Are you sure you want to proceed?"
            android:textColor="#ffffff"
            android:textSize="16dip" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dip"
            android:layout_marginTop="10dip"
            android:gravity="center_horizontal"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/cancel"
                android:layout_width="0dip"
                android:layout_height="40dip"
                android:layout_gravity="left"
                android:layout_marginLeft="10dip"
                android:layout_weight="0.5"
                android:background="@drawable/custom_button1"
                android:text="Cancel"
                android:textColor="@color/white"
                android:textStyle="bold" />

            <Button
                android:id="@+id/ok"
                android:layout_width="0dip"
                android:layout_height="40dip"
                android:layout_marginBottom="10dip"
                android:layout_marginRight="10dip"
                android:layout_weight="0.5"
                android:background="@drawable/custom_button"
                android:text="OK"
                android:textColor="@color/white"
                android:textStyle="bold" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>
           

看起啦很简单啦,所有涉及全部在xml 中配置好了。

在这里还要注意定义时候

final Dialog lDialog = new Dialog(MainMenuActivity.this,

android.R.style.Theme_Translucent_NoTitleBar);

lDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

如果你使用了沉浸式状态栏时候,就会出现了冲突发生。所以使用此自定义对话框,避免使用该沉浸式状态栏。

源码下载: https://git.oschina.net/xiabing/IponeAlertType.git