简单对话框、选项对话框和Toast『Android系列11』
2012-08-15 15:46
344 查看
这篇文章谈谈各种对话框的实现。
首先简单对话框,分为三部分:标题,内容和下面的按键,先看没有按键的对话框的声明方式:
对话框一共有三个按键,分别对应肯定否定和中立:
具体点击哪个按钮触发的事件在DialogInterface.OnClickListener对象里面编写,所以完整的简单对话框就是在第一条代码基础上再加上某个或某几个按键:
简单对话框很简单,然后继续学习选项对话框,先想象一下选项对话框和简单对话框的不同,好像就是中间的内容格式不同和没有下面的三个按钮,就是这个了,设置选项和点击监控:
第二个参数已经在简单对话框中学习过是定义点击事件的触发的,那么第一个参数是什么意思,又要从哪里获取呢?其实,这个参数就是我们说要展示的选项对话框内的“选项”,是从values/*.xml中获取的:
看下完整选项对话框的代码:
也是很简单吧,这里需要注意的是setItems可以换成其他形式,比如复选框setMultiChoiceItems等,自己动动手试试吧,最后在看个更简单的短暂显示提示框:Toast
第三个参数还可以选择Toast.LENGTH_LONG,显示的时间更加长一点。
三种对话框结合起来写个简单示例:
至于main.xml和strings.xml里面的代码就不粘贴了,补充完整运行一下看看效果吧。
首先简单对话框,分为三部分:标题,内容和下面的按键,先看没有按键的对话框的声明方式:
new AlertDialog.Builder(Main.this).setTitle("标题").setMessage("内容").show();
对话框一共有三个按键,分别对应肯定否定和中立:
public AlertDialog.Builder setPositiveButton (CharSequence text, DialogInterface.OnClickListener listener) public AlertDialog.Builder setNegativeButton (CharSequence text, DialogInterface.OnClickListener listener) public AlertDialog.Builder setNeutralButton (CharSequence text, DialogInterface.OnClickListener listener)
具体点击哪个按钮触发的事件在DialogInterface.OnClickListener对象里面编写,所以完整的简单对话框就是在第一条代码基础上再加上某个或某几个按键:
new AlertDialog.Builder(Main.this).setTitle("标题").setMessage("内容") .setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //这里编写点击对话框按钮后触发的事件 } }).show();
简单对话框很简单,然后继续学习选项对话框,先想象一下选项对话框和简单对话框的不同,好像就是中间的内容格式不同和没有下面的三个按钮,就是这个了,设置选项和点击监控:
public AlertDialog.Builder setItems (CharSequence[] items, DialogInterface.OnClickListener listener)
第二个参数已经在简单对话框中学习过是定义点击事件的触发的,那么第一个参数是什么意思,又要从哪里获取呢?其实,这个参数就是我们说要展示的选项对话框内的“选项”,是从values/*.xml中获取的:
<array name="sports"> <item name="basketball">篮球</item> <item name="football">足球</item> <item name="baseball">棒球</item> <item name="pingpang">乒乓球</item> </array>
看下完整选项对话框的代码:
new AlertDialog.Builder(Main.this) .setTitle("标题") .setItems(R.array.sports, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int itemId) { //这里编写点击对话框按钮后触发的事件 } }).show();
也是很简单吧,这里需要注意的是setItems可以换成其他形式,比如复选框setMultiChoiceItems等,自己动动手试试吧,最后在看个更简单的短暂显示提示框:Toast
Toast.makeText(Main.this, "就这么简单", Toast.LENGTH_SHORT).show();
第三个参数还可以选择Toast.LENGTH_LONG,显示的时间更加长一点。
三种对话框结合起来写个简单示例:
package com.dazlly; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.Toast; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; public class Main extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViews(); setListener(); } private Button firstButton; private void findViews() { firstButton = (Button) findViewById(R.id.firstButton); } private void setListener() { firstButton.setOnClickListener(show); } private Button.OnClickListener show = new Button.OnClickListener() { @Override public void onClick(View arg0) { new AlertDialog.Builder(Main.this) .setTitle(R.string.title) .setMessage(R.string.message) .setNegativeButton(R.string.back, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .setPositiveButton(R.string.go, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int itemId) { showList(); } }).show(); } }; private void showList() { new AlertDialog.Builder(Main.this) .setTitle(R.string.list) .setItems(R.array.sports, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String[] list = getResources().getStringArray( R.array.sports); Toast.makeText(Main.this, "你选择了" + list[which], Toast.LENGTH_SHORT).show(); } }).show(); } }
至于main.xml和strings.xml里面的代码就不粘贴了,补充完整运行一下看看效果吧。
相关文章推荐
- Android自定义组件系列【13】——Android自定义对话框如此简单
- android:选项(OptionMenu)和上下文菜单 (ContextMenu )简单记录(11
- Android自定义组件系列【13】——Android自定义对话框如此简单
- 简单对话框、选项对话框和Toast
- Android编程学习系列:第三篇,简单的对话框功能实现
- Android实用视图动画及工具系列之二:Toast对话框和加载载入对话框
- Android之Toast简单实现不循环提示
- [置顶] 一个简单、轻量的Android版本更新库、内置了一个漂亮的更新对话框
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Google Android开发者文档系列-创建有内容分享特性的应用之发送简单数据到其它应用程序
- 一款简单易用的 Toast 组件,支持 Android&iOS
- Appium+Genymotion+robotframework+python系列三:一个简单的Android自动化用例
- Android应用系列:仿MIUI的Toast动画效果实现(有图有源码)
- Android调试系列之开发者选项常用功能
- Android--从零单排系列(6)--相对应对话框popupwindow的优势和使用
- Android UI系列-----Dialog对话框
- Android基础教程(三)之-----简单的Button事件响应综合提示控件Toast的应用
- android中使用对话框和Toast退出应用程序
- Android设计模式系列(11)--SDK源码之策略模式
- 【Android Canvas系列】使用canvas绘制简单的clock