Android实现对话框控件Dialog

来源:互联网 发布:战舰世界亚利桑那数据 编辑:程序博客网 时间:2024/05/21 10:45

学习Android三四天了,今天给大家分享一下我的dialog对话空间的实现。想实现四种形式,如下图所示。
这里写图片描述

这里写图片描述
上面是第一个按钮实现的单选对话框,那么如何实现全部功能呢。
首先需要在布局文件(activity_main.xml)中添加布局,代码如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent">    <TextView        android:id="@+id/text"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:text="@string/hello_world" />    <!-- 单选对话框 -->    <Button        android:id="@+id/button"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/text"        android:text="@string/dialog"/>    <!-- 多选对话框 -->    <Button        android:id="@+id/button2"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/button"        android:text="@string/dialogs"/>    <!-- 按键选择对话框 -->    <Button        android:id="@+id/button3"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/button2"        android:text="@string/paly_button"/>    <!-- 三个按键选择对话框 -->    <Button        android:id="@+id/button4"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_below="@+id/button3"        android:text="@string/palys_button"/></RelativeLayout>

布局完成后,需要实现主活动的Java代码,代码实现如下:

package com.open_open.myapplication;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface;import android.os.Bundle;import android.view.View;import android.widget.Button;public class MainActivity extends Activity implements        android.view.View.OnClickListener {    //实现监听方法    private Button button,button2,button3,button4;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button=(Button)findViewById(R.id.button);        button2=(Button)findViewById(R.id.button2);        button3=(Button)findViewById(R.id.button3);        button4=(Button)findViewById(R.id.button4);        button.setOnClickListener(this);        button2.setOnClickListener(this);        button3.setOnClickListener(this);        button4.setOnClickListener(this);    }    private int m=-1;    @Override    public void onClick(View v) {        // TODO 自动生成的方法存根        switch(v.getId())        {            case R.id.button:                dialog1();//单选对话框                break;            case R.id.button2:                dialog2();//多选对话框                break;            case R.id.button3:                dialog3();//两个按键对话框                break;            case R.id.button4:                dialog4();//三个按键对话框                break;        }    }    //单选对话框    public void dialog1()    {        Builder Diy_Dialog = new AlertDialog.Builder(MainActivity.this);        //在这个MainActivity中创建一个提示新的对话框,创建为一个对象Diy_Dialog        Diy_Dialog.setTitle("国家");//标题        String[] lg_item = { "中国", "韩国","日本" ,"美国"};        Diy_Dialog.setSingleChoiceItems(lg_item, m,new DialogInterface.OnClickListener() {            //放置一个单选对话框            //在setSingleChoiceItems(指定对话框选择项的字符,一个选择项的序号,对这个单选对话框创建监听 )            @Override            public void onClick(DialogInterface dialog1, int which)            {//            }        });        Diy_Dialog.setPositiveButton("确认",new DialogInterface.OnClickListener() {            //放置一个Dialog按键    (按键字符,对这个按键dialog实现监听)            @Override            public void onClick(DialogInterface dialog, int which) {                // TODO 自动生成的方法存根                dialog.dismiss();//释放dialog对话框                //MainActivity.this.finish();//结束这个主活动            }        });        Diy_Dialog.create().show();//创建并显示对话框    }    //多选对话框    private void dialog2()    {        final Builder Diy_Dialogs = new AlertDialog.Builder(MainActivity.this);        //在这个MainActivity中创建一个提示新的对话框,创建为一个对象Diy_Dialog        Diy_Dialogs.setTitle("国家");//标题        //  Diy_Dialog2.setMessage("你喜欢的国家");        String[] lg_item = { "中国", "美国","韩国","日本" };        final boolean[] lg_size = {false,false,false,false};        Diy_Dialogs.setMultiChoiceItems(lg_item, lg_size,new DialogInterface.OnMultiChoiceClickListener(){            //放置一个多选选对话框            //在setSingleChoiceItems(指定对话框选择项的字符,一个选择项的序号,对这个单选对话框创建监听 )            @Override            public void onClick(DialogInterface dialog, int which,boolean isChecked) {                //()                // TODO 自动生成的方法存根                //lg_size[which]=isChecked;            }        });        Diy_Dialogs.setPositiveButton("确认",new DialogInterface.OnClickListener() {            //放置一个Dialog按键    (按键字符,对这个按键dialog实现监听)            @Override            public void onClick(DialogInterface dialog, int which) {                // TODO 自动生成的方法存根                dialog.dismiss();//释放dialog对话框                //MainActivity.this.finish();//结束这个主活动            }        });        Diy_Dialogs.create().show();//创建并显示对话框    }    //选择对话框两个按键    private void dialog3()    {        Builder two_dialog= new AlertDialog.Builder(this);        //构建dialog对象        two_dialog.setTitle("提示");//标题        two_dialog.setMessage("确认退出吗?");//内容        two_dialog.setPositiveButton("确认",new DialogInterface.OnClickListener() {            //放置一个Dialog按键    (按键字符,对这个按键dialog实现监听)            @Override            public void onClick(DialogInterface dialog, int which) {                // TODO 自动生成的方法存根                dialog.dismiss();//释放dialog对话框                MainActivity.this.finish();//结束这个主活动            }        });        two_dialog.setNeutralButton("取消",new DialogInterface.OnClickListener() {            @Override            public void onClick(DialogInterface dialog, int which) {                // TODO 自动生成的方法存根                dialog.dismiss();//释放dialog对话框                // MainActivity.this.finish();//结束这个主活动            }        });        two_dialog.create().show();//创建并显示对话框    }    //选择对话框三个按键    private void dialog4(){        Builder three_dialog = new AlertDialog.Builder(this);        //创建对象        three_dialog.setTitle("提示"); //设置标题        three_dialog.setMessage("是否确认退出?"); //设置内容        //builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可        three_dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { //设置确定按钮            //创建一个"确定"对话框dialog 并实现监听            @Override//            public void onClick(DialogInterface dialog, int which) {//                dialog.dismiss(); //关闭dialog////            }            public void onClick(DialogInterface dialog, int which) {                // TODO 自动生成的方法存根                dialog.dismiss();//释放dialog对话框                MainActivity.this.finish();//结束这个主活动            }        });        three_dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { //设置取消按钮            //创建一个"取消"对话框dialog 并实现监听            @Override            public void onClick(DialogInterface dialog, int which) {                dialog.dismiss();//关闭dialog            }        });        three_dialog.setNeutralButton("忽略", new DialogInterface.OnClickListener() {//设置忽略按钮            //创建一个"忽略"对话框dialog 并实现监听            @Override            public void onClick(DialogInterface dialog, int which) {                dialog.dismiss();//关闭dialog            }        });        //参数都设置完成,创建并显示出来        three_dialog.create().show();    }}

这个几个按钮的代码有很强的相似度,大家只要理解其中一个或两个即可掌握dialog的简单使用。
下面是部分效果图:
这里写图片描述

这里写图片描述

这里写图片描述

持之以恒,方得始终

原创粉丝点击