zoukankan      html  css  js  c++  java
  • Android 对话框(Dialog)

    绥江一百http://www.sj100.net                                         欢迎,进入绥江一百感谢点击[我的小网站,请大家多多指教相互共勉]

        在Android开发中,我们经常会需要在界面上弹出一些对话框,比如询问用户或者让用户选择。这些功能我们叫它Android Dialog对话框,在我们使用Android的过程中,据我所知,Android Dialog的类型无非也就7种,下面我分别向大家介绍这7Android Dialog对话框的使用方法,希望对大家能有所帮助。效果图Button                                                图1                                                图2                                                图3                                                图4                                                图5                                                图6                                                图7                                                图8 

    1、主窗体图1的实现,在Lanyout中添加7个按钮,代码如下所示:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="fill_parent"
     4     android:layout_height="fill_parent"
     5     android:orientation="horizontal" >
     6     <Button
     7         android:id="@+id/But_One"
     8         android:layout_width="wrap_content"
     9         android:layout_height="wrap_content"
    10         android:layout_weight="20"
    11         android:text="1" />
    12     <Button
    13         android:id="@+id/But_Two"
    14         android:layout_width="wrap_content"
    15         android:layout_height="wrap_content"
    16         android:layout_weight="20"
    17         android:text="2" />
    18     <Button
    19         android:id="@+id/But_Three"
    20         android:layout_width="wrap_content"
    21         android:layout_height="wrap_content"
    22         android:layout_weight="20"
    23         android:text="3" />
    24     <Button
    25         android:id="@+id/But_Four"
    26         android:layout_width="wrap_content"
    27         android:layout_height="wrap_content"
    28         android:layout_weight="20"
    29         android:text="4" />
    30     <Button
    31         android:id="@+id/But_Five"
    32         android:layout_width="wrap_content"
    33         android:layout_height="wrap_content"
    34         android:layout_weight="20"
    35         android:text="5" />
    36     <Button
    37         android:id="@+id/But_Six"
    38         android:layout_width="wrap_content"
    39         android:layout_height="wrap_content"
    40         android:layout_weight="20"
    41         android:text="6" />
    42     <Button
    43         android:id="@+id/But_Seven"
    44         android:layout_width="wrap_content"
    45         android:layout_height="wrap_content"
    46         android:layout_weight="20"
    47         android:text="7" />
    48 </LinearLayout>
    main.xml
     1 package zqvie.com;
     2 import android.app.Activity;
     3 import android.app.AlertDialog;
     4 import android.app.AlertDialog.Builder;
     5 import android.os.Bundle;
     6 import android.view.View;
     7 import android.view.View.OnClickListener;
     8 import android.widget.Button;
     9 
    10 public class DialogActivity extends Activity implements OnClickListener {
    11     /** Called when the activity is first created. */
    12     @Override
    13     public void onCreate(Bundle savedInstanceState) {
    14         super.onCreate(savedInstanceState);
    15         setContentView(R.layout.main);
    16         But_One=(Button) findViewById(R.id.But_One);     //注册按钮But_One
    17         But_Two=(Button) findViewById(R.id.But_Two);   
    18         But_Three=(Button) findViewById(R.id.But_Three);
    19         But_Four=(Button) findViewById(R.id.But_Four);
    20         But_Five=(Button) findViewById(R.id.But_Five);
    21         But_Six=(Button) findViewById(R.id.But_Six);
    22         But_Seven=(Button) findViewById(R.id.But_Seven);
    23         But_One.setOnClickListener(this);                //为按钮But_One注册侦听器
    24     }
    25 Button But_One,But_Two,But_Three,But_Four,But_Five,But_Six,But_Seven;  //定义按钮
    26 }
    DialogActivity.java

    2、图2的实现,设置单击“按钮1”时,弹出对话框,代码如下所示:

     public void onClick(View v) {
            // TODO Auto-generated method stub
            if(v.getId()==R.id.But_One)
            {
                AlertDialog.Builder builder=new AlertDialog.Builder(DialogActivity .this);//生成一个对话框对象
                builder.setMessage("确定要退出吗?");   //设置对话框的显示信息
                builder.setTitle("提示");           //设置对话框的标题
                builder.setPositiveButton("确定",null);  //设置第一个按钮的Text,null处也可替换为new OnClickListener() {}
                builder.setNegativeButton("取消",null);   //设置第二个按钮的Text
                builder.create().show();                    //创建并显示对话框
            }
        }

     3、图3的实现,设置单击“按钮2”时,弹出对话框,代码和效果图2如下所示:

    if(v.getId()==R.id.But_Two)
            {
                AlertDialog.Builder builder= new AlertDialog.Builder(DialogActivity.this);//生成一个对话框对象
                builder.setIcon( android.R.drawable.btn_star);//设置对话框的图标
                builder.setTitle("喜好调查");                  //设置对话的标题
                builder.setMessage("你喜欢李连杰的电影吗");   //设置对话框的显示信息
                builder.setPositiveButton("很喜欢",null);
                builder.setNeutralButton("一般",null);
                builder.setNegativeButton("不喜欢",null);
                builder.create().show();
            }
    

     4、图4的实现,设置单击“按钮3”时,弹出对话框,代码和效果图3如下所示:

     1 if(v.getId()==R.id.But_Three)
     2         {
     3             AlertDialog.Builder builder=new AlertDialog.Builder(this);
     4             builder.setTitle("请输入");
     5             builder.setIcon(android.R.drawable.ic_dialog_info);   //设置对话框的图标
     6             builder.setView(new EditText(this));      //设置对话框中显示一个输入框
     7             builder.setPositiveButton("确定",null);
     8             builder.setNegativeButton("取消",null);
     9             builder.show();
    10         }

     5、图5的实现,设置单击“按钮4”时,弹出对话框,代码和效果图4如下所示:

    1 if(v.getId()==R.id.But_Four)
    2         {
    3             Builder builder=new AlertDialog.Builder(this);  //生成一个对话框对象
    4             builder.setTitle("单选框");   //设置对话框的标题
    5             builder.setIcon(android.R.drawable.ic_dialog_info);  //设置对话框的图标
    6             builder.setSingleChoiceItems( new String[] { "Item1", "Item2" }, 0,null);  //设置对话框的单选项
    7             builder.setNegativeButton("取消", null);
    8             builder.create().show();
    9         }

     6、图6的实现,设置单击“按钮5”时,弹出对话框,代码和效果图5如下所示:

    1 if(v.getId()==R.id.But_Five)
    2         {
    3             Builder builder=new AlertDialog.Builder(this);  //生成一个对话框对象
    4             builder.setTitle("复选框");                  //设置对话框的标题
    5             builder.setMultiChoiceItems( new String[] { "Item1", "Item2" }, null, null); //设置对话框的复选项
    6             builder.setPositiveButton("确定", null); //设置对话框的第一个按钮"确定"
    7             builder.setNegativeButton("取消", null); //设置对话框的第二个按钮"取消"
    8             builder.show();
    9         }

     7、图7的实现,设置单击“按钮6”时,弹出对话框,代码和效果图6如下所示:

    1 if(v.getId()==R.id.But_Six)
    2         {
    3             Builder builder=new AlertDialog.Builder(this);  //生成一个对话框对象
    4             builder.setTitle("列表框");
    5             builder.setItems(new String[]{"Item1","Item2"},null);
    6             builder.setNegativeButton("确定",null);
    7             builder.create().show();
    8         }

     8、图8的实现,设置单击“按钮7”时,弹出自定义对话框,这种对话框相对上面讲的要复杂一些,它需要通过一个.xml文件来传递你要呈现的布局。代码和效果图7如下所示:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_height="wrap_content" android:layout_width="wrap_content"
     4  android:background="#ffffffff" android:orientation="horizontal"
     5  android:id="@+id/mydialog">
     6  <TextView android:layout_height="wrap_content"
     7    android:layout_width="wrap_content"
     8   android:id="@+id/tvname" android:text="姓名:" />
     9  <EditText android:layout_height="wrap_content"
    10   android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>
    11 
    12 </LinearLayout>
    dialog.xml
     1 if(v.getId()==R.id.But_Seven)
     2         {
     3             LayoutInflater inflater = getLayoutInflater();
     4                View layout = inflater.inflate(R.layout.mydialog,
     5                  null);
     6              
     7                new AlertDialog.Builder(this).setTitle("自定义布局").setView(layout)
     8                  .setPositiveButton("确定", null)
     9                  .setNegativeButton("取消", null).show();
    10         }
    DialogActivity.java

    感悟

         学习了制作对话框,才发现其实对话框的制作也是非常简单的,一般情况下只需设置对话框的标题、信息、图标、按钮即可,有的时候还需要添加文本框、单选按钮、复选框、列表项。然而比较复杂的情况就是自定义对话框。在设置自定义对话框的时候,需要设计一个你的xml文件,里面是你的自定义布局,然后通过,主窗体调用xml来实现自定义对话框的制作。

     

  • 相关阅读:
    (零 ) 天猫精灵接入Home Assistant-总说明
    (二 -2) 天猫精灵接入Home Assistant-自动发现Mqtt设备
    (二 -1) 天猫精灵接入Home Assistant-控制Mqtt设备
    如何在关闭ssh连接的情况下,让程序继续运行?
    hass连接设备
    (一 ) 天猫精灵接入Home Assistant-服务器搭建
    (一) 天猫精灵接入Home Assistant- hass对接天猫精灵
    (3)HomeAssistant 连接MQTT
    (2)HomeAssistant 参数配置
    (1)HomeAssistant 安装开始
  • 原文地址:https://www.cnblogs.com/zengqin/p/3082845.html
Copyright © 2011-2022 走看看