各种Android Dialog创建及其监听事件实现
来源:互联网 发布:老婆很漂亮体验知乎 编辑:程序博客网 时间:2024/05/15 23:15
在Android开发中,我们经常会需要在Android界面上弹出一些对话框,比如询问用户或者让用户选择。关于Android Dialog的使用方法,已经有很多blog做出了详细的介绍(比如博客:7种形式的Android Dialog使用举例),但是只是给出了创建各种类型对话框的方法,并未给出如何获取用户在对话框中做出选择后的数据,即如何监听用户做出的选择。
接下来笔者将根据JavaDoc
1、创建提示对话框。
笔者为该对话框添加了3个按钮,分别是
JavaDoc
创建提示对话框并实现监听事件的代码如下:
- new
AlertDialog.Builder(DialogActivity. this).setIcon(android.R.drawable.btn_star) -
.setTitle("调查").setMessage("你喜欢海贼王吗?") -
.setPositiveButton("喜欢",new DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
Toast.makeText(DialogActivity.this,"我很喜欢海贼王", Toast.LENGTH_SHORT).show(); -
} -
}) -
.setNeutralButton("一般",new DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
Toast.makeText(DialogActivity.this,"我对海贼王不怎么感兴趣", Toast.LENGTH_SHORT).show(); -
} -
}) -
.setNegativeButton("不喜欢",new DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
Toast.makeText(DialogActivity.this,"我一点也不喜欢海贼王", Toast.LENGTH_SHORT).show(); -
} -
}).show();// show很关键
2、创建文本框对话框。
笔者为该对话框添加了1个文本、一个PositiveButton
创建文本框对话框并实现监听事件的代码如下:
- final
EditText neweditText = EditText(DialogActivity. this); - new
AlertDialog.Builder(DialogActivity. this).setTitle("请输入").setView(editText).setPositiveButton("确定", - new
DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
Toast.makeText(DialogActivity.this, "您输入的内容是:"+editText.getText(), Toast.LENGTH_SHORT).show(); -
} - }).setNegativeButton("取消",
null).show();
3、创建简单列表对话框。
笔者为该对话框添加了一个数组显示列表,并实现了点击列表item选项监听事件,点击item选项后获取item内容,并以toast形式显示出来。
JavaDoc
查阅JavaDoc
创建简单列表对话框并实现监听事件的代码如下:
- final
String[] newitems = String[]{ "北京","上海","深圳"}; - new
AlertDialog.Builder(DialogActivity. this).setTitle("城市列表").setItems(items,new DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
switch (which) { -
case 0: -
Toast.makeText(DialogActivity.this, "您选中了:"+items[0], Toast.LENGTH_SHORT).show(); -
break; -
case 1: -
Toast.makeText(DialogActivity.this, "您选中了:"+items[1], Toast.LENGTH_SHORT).show(); -
break; -
case 2: -
Toast.makeText(DialogActivity.this, "您选中了:"+items[2], Toast.LENGTH_SHORT).show(); -
break; -
} -
} - }).show();
4、创建单选按钮列表对话框。
笔者为该对话框添加了一个单选按钮数组显示列表,并实现了点击item选项监听事件,点击item选项后获取item内容,并以toast形式显示出来。
JavaDoc
笔者是以红框标记的方法实现的,即提供一个数组的方式,读者可尝试下另外的几种方法,比如提供ListAdapter、Cursor的方式来实现。
创建单选项列表对话框并实现监听事件的代码如下:
- final
String[] newitems = String[]{ "苹果","香蕉","梨子"}; - new
AlertDialog.Builder(DialogActivity. this).setTitle("单选框").setSingleChoiceItems(items,0, new DialogInterface.OnClickListener() { -
-
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
switch (which) { -
case 0: -
Toast.makeText(DialogActivity.this, "您选中了:"+items[0], Toast.LENGTH_SHORT).show(); -
break; -
case 1: -
Toast.makeText(DialogActivity.this, "您选中了:"+items[1], Toast.LENGTH_SHORT).show(); -
break; -
case 2: -
Toast.makeText(DialogActivity.this, "您选中了:"+items[2], Toast.LENGTH_SHORT).show(); -
break; -
} -
} - }).setNegativeButton("取消",
null).show();
5、创建复选框列表对话框。
笔者为该对话框添加了一个复选框数组显示列表,并实现了点击复选框选项监听事件,选中复选框选项后,获取所有选中的选项,并以toast形式显示出来。
JavaDoc
创建复选框列表对话框并实现监听事件的代码如下:
- final
String[] newitems = String[]{ "音乐","电影","书籍"}; - final
boolean[] selected new= boolean[]{true,false,true}; - new
AlertDialog.Builder(DialogActivity. this).setTitle("复选框") - .setMultiChoiceItems(items,selected,
new DialogInterface.OnMultiChoiceClickListen er() { -
@Override -
public void onClick(DialogInterface intdialog, which, booleanisChecked) { -
// TODO Auto-generated method stub -
selected[which] = isChecked; -
} - })
- .setPositiveButton("确定",
new DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
StringBuffer str = new StringBuffer( "您选中了:"); -
for(int i= 0;i<</span>3;i++){ -
if(selected[i]){ -
str.append(items[i]+","); -
} -
} -
str.deleteCharAt(str.length()-1); -
Toast.makeText(DialogActivity.this, str, Toast.LENGTH_SHORT).show(); -
} - }).setNegativeButton("取消",
null).show();
6、创建自定义列表对话框。
笔者为该对话框添加了自定义的布局文件,该自定义布局文件包含一个文本标签和一个文本框,并实现了确定按钮点击监听事件,在文本框输入内容后,获取文本框里的内容,并以toast形式显示出来。
创建自定义列表对话框并实现监听事件的代码如下:
- LayoutInflater
layoutInflater this);= LayoutInflater.from(DialogActivity. // 创建视图容器并设置上下文 - final
View null);view = layoutInflater.inflate(R.layout.dialog, // 获取list_item布局文件的视图 - new
AlertDialog.Builder(DialogActivity. this).setTitle("自定义布局").setView(view).setPositiveButton("确定",new DialogInterface.OnClickListener() { -
@Override -
public void onClick(DialogInterface intdialog, which) { -
// TODO Auto-generated method stub -
EditText editText = (EditText) view.findViewById(R.id.likeText); -
Toast.makeText(DialogActivity.this, "您的爱好是:"+editText.getText(), Toast.LENGTH_SHORT).show(); -
} - }).setNegativeButton("取消",
null).show();
7、参考:
7种形式的Android Dialog使用举例
8、项目源码:
- 各种Android Dialog创建及其监听事件实现
- 各种Android Dialog创建及其监听事件实现
- 各种Android Dialog创建及其监听事件实现
- 各种Android Dialog创建及其监听事件实现
- Android:各种Dialog创建及其监听事件实现
- Android Dialog创建及其监听事件实现
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现
- Android 创建事件监听
- android Dialog 监听返回事件(back)
- Android 自定义Dialog,自定义接口监听事件。
- Android-Dialog监听触摸外部事件
- Android 自定义Dialog类,并在Activity中实现按钮监听事件
- Android自定义listview及其点击事件监听
- Android各种控件的事件监听
- android-各种控件的监听事件 - 随心
- Android各种控件的事件监听 (转)
- Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
- 类 作用域 共享变量 实例变量
- verilog实现串口
- [经典面试题]最长01子串
- IOS设计模式第二篇之单例设计模式
- 各种Android Dialog创建及其监听事件实现
- LINUX下动态链接库dlopen dlsym dlclose函数使用说明
- Android SDK更新 Connection to http://dl-ssl.google.com refused 解决方法
- Literal控件与Label控件的对比
- Linux动态链接库.so文件的创建与使用
- 出现次数最多的数
- 新的开始
- BF算法及KMP算法总结
- ddms调试android性能