Android简单例子——IpHone样式AlertDialog

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

通过这个例子学到的东西

1.自定义对话框的使用

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

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

1.实现效果

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();
    }
}

代码下载地址

时间: 2024-12-17 20:44:20

Android简单例子——IpHone样式AlertDialog的相关文章

Android简单例子——AlertDialog

最近学习了一段时间的Android,在网上找了些小的Demo,自己模拟这做了下,首先谢谢那些提供例子的朋友 今天主要学习的是简单的Dialog的使用(实现退出对话框)和自定义对话框 1.实现退出对话框 普通模式的对话框使用比较简单,主要是设置对话框标题.设置对话框内容.设置对话框中的按钮,以及增加监听事件,主要代码如下 //普通样式的对话框 btn2 = (Button) findViewById(R.id.btn2); btn2.setOnClickListener(new OnClickLi

【转】android json解析及简单例子

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便

android json解析及简单例子(转载)

android json解析及简单例子 JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JS

Android用DialogFragment实现iphone样式的圆角对话框

Android实现iphone样式的对话框,主要是借助shape,corner元素方法. 下面的circular_corner_dialog.xml文件定义了一个圆角矩形.corner元素指定了圆角矩形的圆角半径,而gradient元素则指定了色彩渐变的方向以及起始颜色.当然也可以使用shape创建其它各种图形,如椭圆.线条以及环等,并设置不同的视觉风格. res/drawable/circular_corner_dialog.xml <?xml version="1.0" en

Android简单的分享笔记

http://blog.csdn.net/xyz_lmn/article/details/16856843 采用Intent隐式调用Activity的方法,主要使用Intent.ACTION_SEND和Intent.createChooser(); 调用Android系统的分享接口.系统会过滤手机上的具有分享应用的程序,让用户进行选择.如果没有使用Intent.createChooser()则会取系统默认的用户分享方式,只有未设置的情况下才会弹出让用户进行选择. 1.简单的分享文本 1 Inte

Excel导出学习之道:Java Web利用POI导出Excel简单例子

采用Spring mvc架构: Controller层代码如下 [java] view plaincopy @Controller public class StudentExportController{ @Autowired private StudentExportService studentExportService; @RequestMapping(value = "/excel/export") public void exportExcel(HttpServletReq

Android简单的文件浏览器,ListActivity的简单用法

2014-07-29 13:39:09MainActivity.java package com.example.sample_4_21; import java.io.File; import java.util.ArrayList; import java.util.List; import android.app.AlertDialog; import android.app.ListActivity; import android.content.DialogInterface; imp

Android 修改Activity标题样式 actionBar

修改Activity的标题样式及ActionBar ,代码如下 <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <!-- All customizations that are NOT specific to a particular API-level can go here. --> <!-- <item name=

从一个简单例子来理解js引用类型指针的工作方式

? 1 2 3 4 5 6 7 <script> var a = {n:1};  var b = a;   a.x = a = {n:2};  console.log(a.x);// --> undefined  console.log(b.x);// --> [object Object]  </script> 上面的例子看似简单,但结果并不好了解,很容易把人们给想绕了--"a.x不是指向对象a了么?为啥log(a.x)是undefined?".&