Android简单例子——IpHone样式AlertDialog

此例子源于网络,下载下来之后,自己加了写注释,作为总结,发到博客中,谢谢原作者

通过这个例子学到的东西

1.自定义对话框的使用

2.程序中使用颜色如何进行存放,增加复用性

3.加深线性布局、常用控件的使用

1.实现效果

Android简单例子——IpHone样式AlertDialogAndroid简单例子——IpHone样式AlertDialog

2.颜色值文件

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <drawable name="white">#FFFFFF</drawable> 

    <color name="White">#FFFFFF</color>

    <color name="Black">#000000</color>

    <color name="grey">#D7D4D4</color>

    <color name="red">#FF0000</color>

 

</resources>

3.第一个界面布局文件

<?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:layout_gravity="center_horizontal|center_vertical"

    android:orientation="vertical">

    

    <LinearLayout

        android:orientation="vertical"

        android:background="@drawable/alert"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip">

        

        <TextView android:id="@+id/dialog_title"

             android:layout_width="wrap_content" 

             android:layout_height="wrap_content"

             android:layout_marginTop="15dip"

             android:textColor="#ffffff"

             android:textStyle="bold"

             android:textSize="17sp" 

             android:text="About to call 323"/>

        

        <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:textSize="15sp"

             android:textColor="#ffffff"

             android:text="Are you sure you want to proceed?" />



         <Button

             android:id="@+id/ok"

             android:layout_width="fill_parent"

             android:layout_height="40dip"

             android:layout_marginBottom="10dip"

             android:layout_marginLeft="10dip"

             android:layout_marginRight="10dip"

             android:background="@drawable/custom_button"

             android:textColor="@color/White"

             android:textSize="17sp"

             android:textStyle="bold" 

             android:text="OK"/>

    </LinearLayout>

</LinearLayout>

4.第二个界面的布局文件

<?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:layout_gravity="center_horizontal|center_vertical"

    android:orientation="vertical">

    

    <LinearLayout

        android:orientation="vertical"

        android:background="@drawable/alert"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:gravity="center_horizontal"

        android:layout_marginLeft="20dip"

        android:layout_marginRight="20dip">

        

        <TextView android:id="@+id/dialog_title_2"

             android:layout_width="wrap_content" 

             android:layout_height="wrap_content"

             android:layout_marginTop="15dip"

             android:textColor="#ffffff"

             android:textStyle="bold"

             android:textSize="17sp" 

             android:text="About to call 323"/>

        

        <TextView android:id="@+id/dialog_message_2"

             android:layout_width="wrap_content"

             android:layout_height="wrap_content"

             android:layout_margin="10dip"

             android:gravity="center_horizontal"

             android:textSize="15sp"

             android:textColor="#ffffff"

             android:text="Are you sure you want to proceed?" />

        <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_2"

                android:layout_width="0dip"

                android:layout_height="40dip"

                android:layout_gravity="left"

                android:layout_marginLeft="10dip"

                android:layout_weight="1"

                android:background="@drawable/custom_button"

                android:text="取消"

                android:textColor="@color/White"

                android:textStyle="bold" />



            <Button

                android:id="@+id/ok_2"

                android:layout_width="0dip"

                android:layout_height="40dip"

                android:layout_marginBottom="10dip"

                android:layout_marginRight="10dip"

                android:layout_weight="1"

                android:background="@drawable/custom_button"

                android:text="确定"

                android:textColor="@color/White"

                android:textStyle="bold" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

5.核心代码文件

public class MainActivity extends Activity {



    private Button btn;

    private Button btn2;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        

        btn = (Button) findViewById(R.id.btn1);

        

        /**增加监听事件**/

        btn.setOnClickListener(new OnClickListener() {

            

            @Override

            public void onClick(View view) {

                // TODO Auto-generated method stub

                showCustomMessageOK("提示信息","不能进行此项操作");

            }



        });

        

        btn2 = (Button) findViewById(R.id.btn2);

        btn2.setOnClickListener(new OnClickListener() {

            @Override

            public void onClick(View view) {

                // TODO Auto-generated method stub

                showCustomMessageOKAndCancle("温馨提示","是否确认退出");

            }

        });

    }

    

    /**

     * 实现一个带有确定和取消按钮的对话框

     * @param title

     * @param message

     */

    protected void showCustomMessageOKAndCancle(String title, String message) {

        // TODO Auto-generated method stub

        

        /**

         * 创建一个Dialog对象,Dialog有两个构造法方法

         * 1.

         * 

         * 

         **/

        final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_Translucent_NoTitleBar);

        

        /**为Dialog加载布局文件**/

        dialog.setContentView(R.layout.ok_cancle_dialog_view);

        /**为设置相应的属性值**/

        ((TextView)dialog.findViewById(R.id.dialog_title_2)).setText(title);

        ((TextView)dialog.findViewById(R.id.dialog_message_2)).setText(message);

        ((Button) dialog.findViewById(R.id.cancel_2)).setOnClickListener(new OnClickListener() {

            

            @Override

            public void onClick(View view) {

                // TODO Auto-generated method stub

                dialog.dismiss();

            }

        });

        

        ((Button) dialog.findViewById(R.id.ok_2)).setOnClickListener(new OnClickListener() {

                

                @Override

                public void onClick(View view) {

                    // TODO Auto-generated method stub

                    MainActivity.this.finish();

                    System.exit(0);

                }

        });

        dialog.show();

    }

    /**

     * 创建一个只有确定按钮的对话框

     * @param title

     * @param message

     */

    private void showCustomMessageOK(String title, String message) {

        // TODO Auto-generated method stub

        final Dialog dialog = new Dialog(MainActivity.this, android.R.style.Theme_Translucent_NoTitleBar);

        dialog.setContentView(R.layout.ok_dialog_view);

        ((TextView) dialog.findViewById(R.id.dialog_title)).setText(title);

        ((TextView) dialog.findViewById(R.id.dialog_message)).setText(message);

        ((Button) dialog.findViewById(R.id.ok)).setText("OK");

        ((Button) dialog.findViewById(R.id.ok)).setOnClickListener(new OnClickListener() {

            

            @Override

            public void onClick(View view) {

                // TODO Auto-generated method stub

                dialog.dismiss();

            }

        });

        

        dialog.show();

    }

}

代码下载地址

你可能感兴趣的:(AlertDialog)