首页 技术 正文
技术 2022年11月16日
0 收藏 901 点赞 4,865 浏览 5261 个字

原文:

http://blog.csdn.net/kkfdsa132/article/details/6322835

Android为我们提供几种对话框,主要有:AlertDialog、ProgressDialog、DataPickerDialog、TimePickerDialog。

AlertDialog,是具有0-3个按钮,还可以可以放置选项、复选框单选框或自定义布局等,以达到与用户交互的效果。

AlertDialog中 最常用的莫过于Builder对话框。下面,列举出它常用的几种方式:1.简单的Builder;2.带控件的Builder;3.自定义布局的Builder;4.嵌套的Builder

 1)简单的Builder

Android之Builder对话框的一些常用方式    Android之Builder对话框的一些常用方式

  1. new AlertDialog.Builder(AlertDialog_Builder.this)   //Content上下文
  2. .setIcon(android.R.drawable.ic_dialog_alert)        //图标,android.R开头表示Android提供的资源库
  3. .setTitle(“简单的Builder:显示文本内容”)              //标题
  4. .setMessage(et_show.getText())                      //要显示的内容
  5. .show();                                            //显示

  2)带控件的Builder

Android之Builder对话框的一些常用方式    Android之Builder对话框的一些常用方式

  1. final CharSequence[] items ={“Black”, “Red”, “Blue”, “Yellow”};
  2. final int[] color = {Color.BLACK, Color.RED, Color.BLUE, Color.YELLOW};
  3. final StringBuffer selectedItem = new StringBuffer(“0”);
  4. new AlertDialog.Builder(AlertDialog_Builder.this)
  5. .setIcon(android.R.drawable.ic_dialog_info)
  6. .setTitle(“带Button的Builder:显示文本内容”)
  7. //.setMessage(et_show.getText())
  8. .setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {
  9. @Override
  10. public void onClick(DialogInterface dialog, int which) {
  11. // TODO Auto-generated method stub
  12. selectedItem.delete(0, selectedItem.length()-1);
  13. selectedItem.append(which);
  14. }
  15. })
  16. .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {//添加一个Button并注册其响应事件
  17. @Override
  18. public void onClick(DialogInterface dialog, int which) {
  19. // TODO Auto-generated method stub
  20. int colorID = Integer.parseInt(selectedItem.toString());
  21. et_show.setBackgroundColor(color[colorID]);
  22. }
  23. })
  24. .setNegativeButton(“清除”, new DialogInterface.OnClickListener() {    //注意,这个是SetNegativeButton,上面那个是SetPositiveButton
  25. //不能重复名字,否则最后那个会覆盖前面那个,也就是说每个Buttion只显示一个。
  26. @Override
  27. public void onClick(DialogInterface dialog, int which) {
  28. // TODO Auto-generated method stub
  29. et_show.setText(“”);
  30. }
  31. })
  32. .setNeutralButton(“取消”, new DialogInterface.OnClickListener() {
  33. @Override
  34. public void onClick(DialogInterface dialog, int which) {
  35. // TODO Auto-generated method stub
  36. dialog.cancel();
  37. }
  38. })
  39. .show();

 3)自定义布局的Builder

Android之Builder对话框的一些常用方式    Android之Builder对话框的一些常用方式

a.代码

  1. final LayoutInflater layout = LayoutInflater.from(AlertDialog_Builder.this);    //用于获取,要使用final修饰
  2. final View customView = layout.inflate(R.layout.alter_text, null);          //创建自定义的View,要使用final修饰
  3. new AlertDialog.Builder(AlertDialog_Builder.this)
  4. .setIcon(android.R.drawable.ic_dialog_info)
  5. .setTitle(“自定义的Builder:修改文本内容”)
  6. .setView(customView)        //添加自定义视图
  7. .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {//添加一个Button并注册其响应事件
  8. @Override
  9. public void onClick(DialogInterface dialog, int which) {
  10. // TODO Auto-generated method stub
  11. EditText et_alteredText = (EditText)customView.findViewById(R.id.et_alteredText); //获取自定义View里面的EditText
  12. et_show.setText(et_alteredText.getText().toString());
  13. }
  14. })
  15. .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { //注意,这个是SetNegativeButton,上面那个是SetPositiveButton
  16. //不能重复名字,否则最后那个会覆盖前面那个,也就是说每个Buttion只显示一个。
  17. @Override
  18. public void onClick(DialogInterface dialog, int which) {
  19. // TODO Auto-generated method stub
  20. dialog.cancel();
  21. }
  22. })
  23. .show();

b.布局文件alter_text.xml

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <AbsoluteLayout
  3. android:id=”@+id/widget1″
  4. android:layout_width=”fill_parent”
  5. android:layout_height=”fill_parent”
  6. xmlns:android=”http://schemas.android.com/apk/res/android”
  7. >
  8. <EditText
  9. android:id=”@+id/et_alteredText”
  10. android:layout_width=”fill_parent”
  11. android:layout_height=”wrap_content”
  12. android:textSize=”18sp”
  13. android:layout_x=”0px”
  14. android:layout_y=”22px”
  15. >
  16. </EditText>
  17. </AbsoluteLayout>

 4)嵌套的Builder

Android之Builder对话框的一些常用方式   Android之Builder对话框的一些常用方式

  1. final LayoutInflater layout2 = LayoutInflater.from(AlertDialog_Builder.this);   //用于获取XML工厂,要使用final修饰
  2. final View customView2 = layout2.inflate(R.layout.alter_text, null);            //创建自定义的View,要使用final修饰
  3. new AlertDialog.Builder(AlertDialog_Builder.this)
  4. .setIcon(android.R.drawable.ic_dialog_info)
  5. .setTitle(“嵌套的Builder:显示文本内容”)
  6. .setMessage(et_show.getText())
  7. .setPositiveButton(R.string.rename, new DialogInterface.OnClickListener() {//添加一个Button并注册其响应事件
  8. @Override
  9. public void onClick(DialogInterface dialog, int which) {
  10. // TODO Auto-generated method stub
  11. new AlertDialog.Builder(AlertDialog_Builder.this)
  12. .setIcon(android.R.drawable.ic_dialog_info)
  13. .setTitle(“嵌套的Builder:修改文本内容”)
  14. .setView(customView2)       //添加自定义视图
  15. .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {//添加一个Button并注册其响应事件
  16. @Override
  17. public void onClick(DialogInterface dialog, int which) {
  18. // TODO Auto-generated method stub
  19. EditText et_alteredText = (EditText)customView2.findViewById(R.id.et_alteredText); //获取自定义View里面的EditText
  20. et_show.setText(et_alteredText.getText().toString());
  21. }
  22. })
  23. .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { //注意,这个是SetNegativeButton,上面那个是SetPositiveButton
  24. //不能重复名字,否则最后那个会覆盖前面那个,也就是说每个Buttion只显示一个。
  25. @Override
  26. public void onClick(DialogInterface dialog, int which) {
  27. // TODO Auto-generated method stub
  28. dialog.cancel();
  29. }
  30. })
  31. .show();
  32. }
  33. })
  34. .setNegativeButton(“取消”, new DialogInterface.OnClickListener() {    //注意,这个是SetNegativeButton,上面那个是SetPositiveButton
  35. //不能重复名字,否则最后那个会覆盖前面那个,也就是说每个Buttion只显示一个。
  36. @Override
  37. public void onClick(DialogInterface dialog, int which) {
  38. // TODO Auto-generated method stub
  39. et_show.setText(“”);
  40. }
  41. })
  42. .show();

至于Builder的进一步使用,以后在补上。

 

0
上一篇: LeetCode简单题(一)
下一篇: 安装pymongo
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,401
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,896