首页 > 其他分享 >android 对话框AlertDialog。

android 对话框AlertDialog。

时间:2023-08-08 13:03:47浏览次数:39  
标签:Toast show 对话框 Dia AlertDialog android Lesson

API:



java.lang.Object

  ↳ android.app.AlertDialog.Builder



使用AlertDialog.Builder创建对话框需要了解以下几个方法:


setTitle :为对话框设置标题

setIcon :为对话框设置图标

setMessage:为对话框设置内容

setView : 给对话框设置自定义样式

setItems :设置对话框要显示的一个list,一般用于显示几个命令时。

setMultiChoiceItems :用来设置对话框显示一系列的复选框。

setNeutralButton    :

setPositiveButton   :给对话框添加"Yes"按钮

setNegativeButton :对话框添加"No"按钮

create : 创建对话框

show :显示对话框


下面我们来看一下最简单对话框。


android 对话框AlertDialog。_java




这个对话框只是简单的显示内容,使用默认图标,没有按钮,不多说,贴代码:





new AlertDialog.Builder(Lesson_01_Pic.this).setTitle("提示标题").setMessage("这是提示内容").show();

(Lesson_02_Dia是类名,请换成自己的!!)




下面我们为这个对话框加个按钮,效果:


android 对话框AlertDialog。_java_02




代码:




new AlertDialog.Builder(Lesson_01_Pic.this)  
         .setTitle("这是标题")  
        .setMessage("这是提示内容")   
        .setPositiveButton("确定",   
        new DialogInterface.OnClickListener(){  
                  public void onClick(DialogInterface dialoginterface, int i){   
                                 //按钮事件   
                            Toast.makeText(Lesson_01_Pic.this, "确定",Toast.LENGTH_LONG).show();  
                              }   
                      }).show();


添加按钮时,需要同时为该按钮指定监听器。




下面,我们修改一个图标,添加两个按钮,同时显示多个选项,先看下效果:

android 对话框AlertDialog。_xhtml_03




代码:




package com.yfz;  
import android.app.Activity;  
import android.app.AlertDialog;  
import android.app.Dialog;  
import android.content.DialogInterface;  
import android.content.DialogInterface.OnClickListener;  
import android.content.DialogInterface.OnMultiChoiceClickListener;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.Toast;  
public class Lesson_02_Dia extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        Button button = (Button)findViewById(R.id.b01);  
        button.setText("对话框");  
        button.setOnClickListener(new Button.OnClickListener(){  
            @Override  
            public void onClick(View v) {  
                //选项数组  
                String[] choices={"Facebook","Twitter"};  
                //Check判断数组,与选项对应  
                boolean[] chsBool = {true,false};  
                 //包含多个选项及复选框的对话框  
                AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
                         .setIcon(android.R.drawable.btn_star_big_on)  
                         .setTitle("调查")  
                         .setMultiChoiceItems(choices, chsBool, multiClick)  
                         .setPositiveButton("Yes", onclick)  
                         .setNegativeButton("No",  onclick).create();  
                dialog.show();  
            }  
              
        });  
    }  
      
    /** 
     * 对话框复选框事件监听器 
     */  
    OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){  
        @Override  
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
            Toast.makeText(Lesson_02_Dia.this, "第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();  
        }  
          
    };  
      
    /** 
     * 对话框按钮点击事件监听器 
     */  
    OnClickListener onclick = new OnClickListener() {  
        @Override  
        public void onClick(DialogInterface dialog, int which) {  
            switch (which) {  
                case Dialog.BUTTON_NEGATIVE:  
                    Toast.makeText(Lesson_02_Dia.this, "No..",  
                            Toast.LENGTH_LONG).show();  
                    break;  
                case Dialog.BUTTON_NEUTRAL:  
                    Toast.makeText(Lesson_02_Dia.this, "I don't know.",  
                            Toast.LENGTH_LONG).show();  
                    break;  
                case Dialog.BUTTON_POSITIVE:  
                    Toast.makeText(Lesson_02_Dia.this, "Yes!!",  
                            Toast.LENGTH_LONG).show();  
                    break;  
            }  
        }  
    };  
}


说明已经写在注释中了。



下面再介绍一种比较常用的式样,如图:


android 对话框AlertDialog。_移动开发_04



代码:





@Override  
   public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.main);  
         
       Button button = (Button)findViewById(R.id.b01);  
       button.setText("对话框");  
       button.setOnClickListener(new Button.OnClickListener(){  
        @Override  
        public void onClick(View v) {  
            //选项数组  
            String[] choices={"新浪微博","校内","街旁"};  
                 //包含多个选项的对话框  
            AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
                     .setIcon(android.R.drawable.btn_star)  
                     .setTitle("分享")  
                     .setItems(choices, onselect).create();  
            dialog.show();  
        }  
       });  
   }  
     
     
/** 
 * 选项的事件监听器 
 */  
   OnClickListener onselect = new OnClickListener() {  
    @Override  
    public void onClick(DialogInterface dialog, int which) {  
        // TODO Auto-generated method stub  
        switch (which) {  
        case 0:  
            Toast.makeText(Lesson_02_Dia.this, "您选择了新浪微博.",Toast.LENGTH_SHORT).show();  
            break;  
        case 1:  
            Toast.makeText(Lesson_02_Dia.this, "您选择了校内",Toast.LENGTH_SHORT).show();  
            break;  
        case 2:  
            Toast.makeText(Lesson_02_Dia.this, "您选择了街旁",Toast.LENGTH_SHORT).show();  
            break;  
    }  
    }  
      
   };


好了,今天就写到这,改天写一下,如果在弹出框中做一个登陆界面。




继续补充...先上图...


android 对话框AlertDialog。_xhtml_05



页面login.xml: 示例写的比较简单,布局大家可以自己完善、修改。





<?xml version="1.0" encoding="utf-8"?>  
<TableLayout  
android:id="@+id/widget36"  
android:layout_width="fill_parent"  
android:layout_height="fill_parent"  
android:orientation="vertical"  
xmlns:android="http://schemas.android.com/apk/res/android"  
>  
<TextView  
android:id="@+id/widget37"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text="用户名:"  
>  
</TextView>  
<EditText  
android:id="@+id/widget38"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text=""  
android:textSize="18sp"  
>  
</EditText>  
<TextView  
android:id="@+id/widget39"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text="密码:"  
>  
</TextView>  
<EditText  
android:id="@+id/widget40"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text=""  
android:textSize="18sp"  
>  
</EditText>  
</TableLayout>


代码 : (也比较简单)





LayoutInflater factory = LayoutInflater.from(Lesson_02_Dia.this);  
//获得自定义对话框  
View view = factory.inflate(R.layout.login, null);  
  
AlertDialog dialog02 = new AlertDialog.Builder(Lesson_02_Dia.this)  
     .setIcon(android.R.drawable.btn_star)  
     .setTitle("登录")  
       .setView(view)  
       .setPositiveButton("Yes", onclick)  
       .setNegativeButton("No",  onclick).create();  
dialog02.show();  本讲介绍一下Android基本组件:对话框AlertDialog。


API:



java.lang.Object

  ↳ android.app.AlertDialog.Builder



使用AlertDialog.Builder创建对话框需要了解以下几个方法:


setTitle :为对话框设置标题

setIcon :为对话框设置图标

setMessage:为对话框设置内容

setView : 给对话框设置自定义样式

setItems :设置对话框要显示的一个list,一般用于显示几个命令时。

setMultiChoiceItems :用来设置对话框显示一系列的复选框。

setNeutralButton    :

setPositiveButton   :给对话框添加"Yes"按钮

setNegativeButton :对话框添加"No"按钮

create : 创建对话框

show :显示对话框


下面我们来看一下最简单对话框。


android 对话框AlertDialog。_ide_06





这个对话框只是简单的显示内容,使用默认图标,没有按钮,不多说,贴代码:





new AlertDialog.Builder(Lesson_01_Pic.this).setTitle("提示标题").setMessage("这是提示内容").show();

(Lesson_02_Dia是类名,请换成自己的!!)




下面我们为这个对话框加个按钮,效果:


android 对话框AlertDialog。_android_07




代码:




new AlertDialog.Builder(Lesson_01_Pic.this)  
         .setTitle("这是标题")  
        .setMessage("这是提示内容")   
        .setPositiveButton("确定",   
        new DialogInterface.OnClickListener(){  
                  public void onClick(DialogInterface dialoginterface, int i){   
                                 //按钮事件   
                            Toast.makeText(Lesson_01_Pic.this, "确定",Toast.LENGTH_LONG).show();  
                              }   
                      }).show();


添加按钮时,需要同时为该按钮指定监听器。




下面,我们修改一个图标,添加两个按钮,同时显示多个选项,先看下效果:


android 对话框AlertDialog。_ide_08



代码:



package com.yfz;  
import android.app.Activity;  
import android.app.AlertDialog;  
import android.app.Dialog;  
import android.content.DialogInterface;  
import android.content.DialogInterface.OnClickListener;  
import android.content.DialogInterface.OnMultiChoiceClickListener;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.Button;  
import android.widget.Toast;  
public class Lesson_02_Dia extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        Button button = (Button)findViewById(R.id.b01);  
        button.setText("对话框");  
        button.setOnClickListener(new Button.OnClickListener(){  
            @Override  
            public void onClick(View v) {  
                //选项数组  
                String[] choices={"Facebook","Twitter"};  
                //Check判断数组,与选项对应  
                boolean[] chsBool = {true,false};  
                 //包含多个选项及复选框的对话框  
                AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
                         .setIcon(android.R.drawable.btn_star_big_on)  
                         .setTitle("调查")  
                         .setMultiChoiceItems(choices, chsBool, multiClick)  
                         .setPositiveButton("Yes", onclick)  
                         .setNegativeButton("No",  onclick).create();  
                dialog.show();  
            }  
              
        });  
    }  
      
    /** 
     * 对话框复选框事件监听器 
     */  
    OnMultiChoiceClickListener multiClick = new OnMultiChoiceClickListener(){  
        @Override  
        public void onClick(DialogInterface dialog, int which, boolean isChecked) {  
            Toast.makeText(Lesson_02_Dia.this, "第"+(which+1)+"项,选中结果:"+isChecked,Toast.LENGTH_SHORT).show();  
        }  
          
    };  
      
    /** 
     * 对话框按钮点击事件监听器 
     */  
    OnClickListener onclick = new OnClickListener() {  
        @Override  
        public void onClick(DialogInterface dialog, int which) {  
            switch (which) {  
                case Dialog.BUTTON_NEGATIVE:  
                    Toast.makeText(Lesson_02_Dia.this, "No..",  
                            Toast.LENGTH_LONG).show();  
                    break;  
                case Dialog.BUTTON_NEUTRAL:  
                    Toast.makeText(Lesson_02_Dia.this, "I don't know.",  
                            Toast.LENGTH_LONG).show();  
                    break;  
                case Dialog.BUTTON_POSITIVE:  
                    Toast.makeText(Lesson_02_Dia.this, "Yes!!",  
                            Toast.LENGTH_LONG).show();  
                    break;  
            }  
        }  
    };  
}


说明已经写在注释中了。



下面再介绍一种比较常用的式样,如图:


android 对话框AlertDialog。_android_09



代码:




@Override  
   public void onCreate(Bundle savedInstanceState) {  
       super.onCreate(savedInstanceState);  
       setContentView(R.layout.main);  
         
       Button button = (Button)findViewById(R.id.b01);  
       button.setText("对话框");  
       button.setOnClickListener(new Button.OnClickListener(){  
        @Override  
        public void onClick(View v) {  
            //选项数组  
            String[] choices={"新浪微博","校内","街旁"};  
                 //包含多个选项的对话框  
            AlertDialog dialog = new AlertDialog.Builder(Lesson_02_Dia.this)  
                     .setIcon(android.R.drawable.btn_star)  
                     .setTitle("分享")  
                     .setItems(choices, onselect).create();  
            dialog.show();  
        }  
       });  
   }  
     
     
/** 
 * 选项的事件监听器 
 */  
   OnClickListener onselect = new OnClickListener() {  
    @Override  
    public void onClick(DialogInterface dialog, int which) {  
        // TODO Auto-generated method stub  
        switch (which) {  
        case 0:  
            Toast.makeText(Lesson_02_Dia.this, "您选择了新浪微博.",Toast.LENGTH_SHORT).show();  
            break;  
        case 1:  
            Toast.makeText(Lesson_02_Dia.this, "您选择了校内",Toast.LENGTH_SHORT).show();  
            break;  
        case 2:  
            Toast.makeText(Lesson_02_Dia.this, "您选择了街旁",Toast.LENGTH_SHORT).show();  
            break;  
    }  
    }  
      
   };


好了,今天就写到这,改天写一下,如果在弹出框中做一个登陆界面。




继续补充...先上图...

android 对话框AlertDialog。_ide_10




页面login.xml: 示例写的比较简单,布局大家可以自己完善、修改。





<?xml version="1.0" encoding="utf-8"?>  
<TableLayout  
android:id="@+id/widget36"  
android:layout_width="fill_parent"  
android:layout_height="fill_parent"  
android:orientation="vertical"  
xmlns:android="http://schemas.android.com/apk/res/android"  
>  
<TextView  
android:id="@+id/widget37"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text="用户名:"  
>  
</TextView>  
<EditText  
android:id="@+id/widget38"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text=""  
android:textSize="18sp"  
>  
</EditText>  
<TextView  
android:id="@+id/widget39"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text="密码:"  
>  
</TextView>  
<EditText  
android:id="@+id/widget40"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:text=""  
android:textSize="18sp"  
>  
</EditText>  
</TableLayout>


代码 : (也比较简单)




LayoutInflater factory = LayoutInflater.from(Lesson_02_Dia.this);  
//获得自定义对话框  
View view = factory.inflate(R.layout.login, null);  
  
AlertDialog dialog02 = new AlertDialog.Builder(Lesson_02_Dia.this)  
     .setIcon(android.R.drawable.btn_star)  
     .setTitle("登录")  
       .setView(view)  
       .setPositiveButton("Yes", onclick)  
       .setNegativeButton("No",  onclick).create();  
dialog02.show();

标签:Toast,show,对话框,Dia,AlertDialog,android,Lesson
From: https://blog.51cto.com/u_16034393/7007285

相关文章

  • android 导出带数据库文件的APK
    http://www.ophonesdn.com/article/show/111技术文章基于OPhoneSDK1.5的英文电子词典的实现基于OPhoneSDK1.5的英文电子词典的实现OPhone平台开发,2009-12-0711:06:42标签:OPhoneSDK1.5英文词典英文词典是手机中经常使用的应用。因此,在本文将......
  • Android Service生命周期及用法!(转)
    AndroidService生命周期及用法!大家好,上一节我讲解了AndroidActivity的生命周期,这一节我将讲解一下Service,首先我们要知道Service具体是干什么的,什么时候用到?以及它的生命周期等。Service概念及用途:Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在......
  • Android 12 适配之 "Android:exported"
    Android12适配之"Android:exported"将build.gradle中的targetSDKVersion和compileSdkVersion改为31,对应Android12build项目报错AppstargetingAndroid12andhigherarerequiredtospecifyanexplicitvalueforandroid:exportedwhenthecorrespondingc......
  • Android协程带你飞越传统异步枷锁
    引言在Android开发中,处理异步任务一直是一项挑战。以往的回调和线程管理方式复杂繁琐,使得代码难以维护和阅读。Jetpack引入的Coroutine(协程)成为了异步编程的新标杆。本文将深入探讨AndroidJetpackCoroutine的使用、原理以及高级用法,助您在异步编程的路上游刃有余。什么是Coroutin......
  • Android平台一对一音视频通话方案对比:WebRTC VS RTMP VS RTSP
    一对一音视频通话使用场景一对一音视频通话都需要稳定、清晰和流畅,以确保良好的用户体验,常用的使用场景如下:社交应用:社交应用是一种常见的使用场景,用户可以通过音视频通话进行面对面的交流;在线教育:老师和学生可以通过音视频通话功能进行实时互动,提高教学效率;远程协助:在某些工作场景......
  • Android 平台架构
    放一张官网的图各层级描述参考官网:https://developer.android.google.cn/guide/platform?hl=zh-cnHAL层出现的原因:......
  • Android 系统 映像文件
    通过Android拉取ASOP项目源码,配好各种环境后,编译出来的文件,有如下几个:通过Android拉取ASOP项目源码,配好各种环境后,编译出来的文件,有如下几个:boot.img包含内核启动参数、内核等多个元素ramdisk.img小型的文件系统,是Android系统启动的关键system.imgAndroid系统......
  • 【金九银十面试冲刺】Android岗面试题每日分享——Java篇
    一、Java异常机制中,异常Exception与错误Error区别这道题想考察什么?在开发时需要时候需要自定义异常时,应该选择定义Excption还是Error?编写的代码触发Excption或者Error分别代表什么?考察的知识点Java异常机制考生应该如何回答在Java中存在一个Throwable可抛出类,Throwable有两个重要的......
  • Android View动态设置有圆角的背景颜色
    valshapeDrawable=GradientDrawable()//设置形状为矩形shapeDrawable.shape=GradientDrawable.RECTANGLE//设置背景颜色shapeDrawable.setColor(Color.parseColor(item.bgColour))//创建一个圆角数组,分别表示左上......
  • 荣耀90pro无法在Android Studio中使用USB真机调试问题
    今日用荣耀手机进行真机调试,由于之前没有用过华为荣耀手机,所以在连接过程中出现了一些问题。首先,我还是像以前那样用数据线将手机和电脑连接,在手机开发者模式中开启USB调试,结果发现NoDevices。 之后发现,在打开USB调试时,提示如下信息,这跟我之前用其他手机提示的不一样,我记得是......