`

android弹出选择框

阅读更多

转载于http://blog.csdn.net/chenlei1889/article/details/6267406

 

我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢? 
    幸运的是,android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,下面我就吧相关的内容在这里分享一下,也能让更多的初学者少走弯路。

首先是一个最简单的应用,就是弹出一个消息框,在android中可以这样实现

[java] view plaincopy
  1.   

 

 

 

[java] view plaincopy
  1. 1  
  2. new AlertDialog.Builder(self)    
  3. 2  
  4.                 .setTitle("标题")  
  5. 3  
  6.                 .setMessage("简单消息框")  
  7. 4  
  8.                 .setPositiveButton("确定"null)  
  9. 5  
  10.                 .show();  



效果如下:

1.png 


上面的代码中我们新建了一个AlertDialog,并用Builder方法形成了一个对象链,通过一系列的设置方法,构造出我们需要的对话框,然后调用show方法显示出来,注意到Builder方法的参数 self,这个其实是Activity对象的引用,根据你所处的上下文来传入相应的引用就可以了。例如在onCreate方法中调用,只需传入this即可。


下面是带确认和取消按钮的对话框

 

  1. [java] view plaincopy
    1. new AlertDialog.Builder(self)   
    2. .setTitle("确认")  
    3. .setMessage("确定吗?")  
    4. .setPositiveButton("是"null)  
    5. .setNegativeButton("否"null)  
    6. .show();  
     
复制代码


2.png 

注意到,这里有两个null参数,这里要放的其实是这两个按钮点击的监听程序,由于我们这里不需要监听这些动作,所以传入null值简单忽略掉,但是实际开发的时候一般都是需要传入监听器的,用来响应用户的操作。

下面是一个可以输入文本的对话框

  1. [java] view plaincopy
    1. new AlertDialog.Builder(self)  
    2. .setTitle("请输入")  
    3. .setIcon(android.R.drawable.ic_dialog_info)  
    4. .setView(new EditText(self))  
    5. .setPositiveButton("确定"null)  
    6. .setNegativeButton("取消"null)  
    7. .show();  
     



3.png 

如上代码,我们用setView方法,为我们的对话框传入了一个文本编辑框,当然,你可以传入任何的视图对象,比如图片框,WebView等。。尽情发挥你的想象力吧~:lol

下面是单选框与多选框,也是非常有用的两种对话框

  1. [java] view plaincopy
    1. new AlertDialog.Builder(self)  
    2. .setTitle("请选择")  
    3. .setIcon(android.R.drawable.ic_dialog_info)                  
    4. .setSingleChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, 0,   
    5.   new DialogInterface.OnClickListener() {  
    6.                               
    7.      public void onClick(DialogInterface dialog, int which) {  
    8.         dialog.dismiss();  
    9.      }  
    10.   }  
    11. )  
    12. .setNegativeButton("取消"null)  
    13. .show();  
     
  2.                


4.png 


  1. [java] view plaincopy
    1.                  
    2. new AlertDialog.Builder(self)  
    3. .setTitle("多选框")  
    4. .setMultiChoiceItems(new String[] {"选项1","选项2","选项3","选项4"}, nullnull)  
    5. .setPositiveButton("确定"null)                  
    6. .setNegativeButton("取消"null)  
    7. .show();  
                   



多选对话框 

单选和多选对话框应该是我们平时用的非常多的,代码应该很好理解,下面再最后介绍两个、

列表对话框

  1. [java] view plaincopy
    1. new AlertDialog.Builder(self)  
    2. .setTitle("列表框")  
    3. .setItems(new String[] {"列表项1","列表项2","列表项3"}, null)  
    4. .setNegativeButton("确定"null)  
    5. .show();  
     



6.png 


最后,在对话框中显示图片

  1. [java] view plaincopy
    1. ImageView img = new ImageView(self);  
    2. img.setImageResource(R.drawable.icon);  
    3. new AlertDialog.Builder(self)  
    4. .setTitle("图片框")  
    5. .setView(img)  
    6. .setPositiveButton("确定"null)  
    7. .show();  
     


7.png 

      我们传入了一个ImageView来显示图片,这里显示了一个经典的android小绿人图标~ ~,当然这里还可以放上网络图片,具体的实现方法就不介绍了,留给大家来练习吧~:lol

      最后总结一下,android平台为我们开发提供了极大的便利,DialogBuilder能做的不止这些,这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的对话框。

分享到:
评论

相关推荐

    弹出单选框示例(android)

    在Android开发中,创建弹出单选框是常见的交互设计,用于向用户展示有限的选项并获取他们的选择。本文将详细讲解如何实现一个弹出单选框的示例,其中包括如何选择将文本内容通过短信、邮件或剪贴板输出。 首先,...

    android弹出框

    在Android开发中,弹出框...总之,Android弹出框是与用户交互的重要工具,根据需求选择合适类型的弹出框并进行定制,可以极大地提升用户体验。理解并熟练运用这些弹出框类型,对于Android开发者来说是至关重要的。

    android标题栏上面弹出提示框(二) PopupWindow实现,带动画效果

    在Android应用开发中,标题栏(Toolbar)上弹出提示框是常见的交互设计,用于向用户展示临时信息或提供简短的操作选项。本教程将详细讲解如何使用PopupWindow实现这样的功能,并添加动画效果,以提升用户体验。...

    Android底部弹出框

    在Android应用开发中,"底部弹出框"是一种常见的用户界面元素,用于向用户提供临时性的交互选项或信息展示。这种设计通常会出现在屏幕底部,并在用户完成操作后消失。"可自定义布局的底部弹出框"允许开发者根据应用...

    android弹出框和加载等待

    在Android开发中,用户体验是至关重要的,而"android弹出框和加载等待"就是提升用户体验的重要手段之一。本文将深入探讨这两个概念,并提供实现自定义弹出框和加载等待效果的方法。 首先,让我们来理解一下Android...

    android蓝牙调用弹出框

    android蓝牙使用,弹出框选择,获取名字和地址

    android仿QQ底部弹出框选择头像

    在Android应用开发中,创建一个类似QQ的底部弹出框选择头像的功能涉及到多个关键知识点。这个功能允许用户选择头像,既可以打开相机拍摄新照片,也可以从本地图库选取已有图片,并提供图像剪切功能以调整图片大小。...

    Android:动画实现精美的弹出框(仿易信)

    在Android开发中,创建引人注目的用户界面是至关重要的,而弹出框作为与用户交互的一种常见方式,其设计和实现方式直接影响到用户体验。本篇文章将深入探讨如何使用动画来实现一个精美的弹出框,类似易信应用中的...

    Android中长按弹出选项框View进行操作

    本教程将详细讲解如何在Android应用中实现长按View弹出选项框的功能。 首先,你需要创建一个`PopupMenu`对象。`PopupMenu`类是Android SDK提供的用于创建弹出菜单的工具。在长按事件的监听器中实例化这个对象: ``...

    js模拟android弹出的友好提示框

    本篇文章将深入探讨如何使用JS模拟Android系统的弹出提示框,实现更友好的交互设计。 首先,我们需要了解`alert()`的基本用法。`alert()`是JavaScript中的一个全局函数,用于显示一个带有可选消息和OK按钮的警告...

    Android自定义弹出多选框,可全选

    本教程将聚焦于如何在Android应用中实现一个自定义的弹出多选框,并实现全选功能。这个自定义组件可以用于让用户在一组选项中进行多项选择,如设置、过滤等场景。 首先,我们需要创建一个新的布局文件来设计多选框...

    android 自定义退出提示弹出框

    在"android 自定义退出提示弹出框"这个场景中,开发者可能会根据应用风格选择`Dialog`或`PopupWindow`。如果希望用户有强烈的感知,使用`Dialog`可能更合适;如果希望保持界面简洁,不打断用户当前操作,`...

    Android 自定义弹出框

    以上就是创建一个自定义Android弹出框的基本过程,其中`MyCommonDialog`可能是你在项目中创建的一个自定义Dialog类,包含了上述步骤的实现。通过这样的方式,你可以根据自己的设计和业务逻辑,打造出具有独特风格和...

    Android弹出框

    总结,Android弹出框是与用户交互的重要手段,开发者需要根据需求选择合适的弹出框类型,并灵活运用其提供的各种方法来自定义界面和行为,确保与用户进行有效且友好的沟通。在实践中,理解并掌握这些知识点对于提升...

    android自定义弹出框实现

    在Android开发中,自定义弹出框是一种常见的需求,它能提供更加个性化和与应用风格一致的用户体验。本文将深入探讨如何在Android中实现自定义弹出框,并以"CustomDialog"为例,介绍其实现过程。 首先,Android系统...

    android日期选择弹出框

    "android日期选择弹出框"就是一个解决此类需求的解决方案。它使用了一个开源组件,叫做`wheel`,来实现年、月、日的滚动选择,并且能够通过回调将用户选定的日期值返回到应用中。 `wheel`组件是一种常见的UI控件,...

    react-native 类似于ios的底部弹出选择框

    react-native 类似于ios的底部弹出选择框,支持android和ios

    Android使用Activity用作弹出式对话框

    在Android开发中,有时我们需要创建一个弹出式对话框来与用户进行交互,但不同于常见的`Dialog`类,我们可以利用`Activity`来实现这一功能。这种方式适用于需要更复杂交互或者自定义布局的情况。本文将详细讲解如何...

    android 弹出窗口

    下面将详细探讨Android弹出窗口的相关知识点。 1. **PopupWindow的基本使用** - 创建PopupWindow:首先,我们需要创建一个PopupWindow实例,传入一个View作为其内容视图,宽度和高度。例如: ```java View ...

    动态的弹出框,可以自定义布局,使用简单

    一个动态的弹出框,可以做动态提示什么的,自定义布局放入就可以。使用非常简单,并且做了性能上的优化,内存占用较小。但是发现个长时间弹出内存会升高,暂未发现原因

Global site tag (gtag.js) - Google Analytics