首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android中的对话框AlertDialog施用技能合集

2012-06-28 
Android中的对话框AlertDialog应用技能合集文章来自:http://blog.csdn.net/blue6626/article/details/6641

Android中的对话框AlertDialog应用技能合集
文章来自:http://blog.csdn.net/blue6626/article/details/6641105

?

?

?

今天我用本身写的一个Demo 和大师具体介绍一个Android中的对话框的应用技能。?


?


Android中的对话框AlertDialog施用技能合集



1.断定作废对话框


对话框中有2个按钮?? 经由过程调用 setPositiveButton 办法 和 setNegativeButton 办法 可以设置按钮的显示内容以及按钮的监听事务。

?

?


Android中的对话框AlertDialog施用技能合集

?

我们应用AlerDialog 创建对话框




view plain


  1. AlertDialog.Builder?builder?=?new?AlertDialog.Builder(MainDialog.this);???


应用builder设置对话框的title button icon 等等




view plain


  1. builder.setIcon(R.drawable.icon);??
  2. ???????builder.setTitle("你断定要分开吗?");??
  3. ???????builder.setPositiveButton("断定",?new?DialogInterface.OnClickListener()?{??
  4. ???????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  5. ???????????????//这里添加点击断定后的逻辑??
  6. ???????????????showDialog("你选择了断定");??
  7. ???????????}??
  8. ???????});??
  9. ???????builder.setNegativeButton("作废",?new?DialogInterface.OnClickListener()?{??
  10. ???????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  11. ???????????????//这里添加点击断定后的逻辑??
  12. ???????????????showDialog("你选择了作废");??
  13. ???????????}??
  14. ???????});??
  15. ???????builder.create().show();??


??这个dialog用于实际onClick后监听的内容信息




view plain


  1. private?void?showDialog(String?str)?{??
  2. w?AlertDialog.Builder(MainDialog.this)??
  3. ?????.setMessage(str)??
  4. ?????.show();??
  5. }??




2.多个按钮信息框



Android中的对话框AlertDialog施用技能合集Android中的对话框AlertDialog施用技能合集




view plain


  1. AlertDialog.Builder?builder?=?new?AlertDialog.Builder(MainDialog.this);???????????
  2. builder.setIcon(R.drawable.icon);??
  3. builder.setTitle("投票");??
  4. builder.setMessage("您认为什么样的内容能吸引您?");??
  5. builder.setPositiveButton("有趣味的",?new?DialogInterface.OnClickListener()?{??
  6. ????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  7. ????????showDialog("你选择了有趣味的");??
  8. ????}??
  9. });??
  10. builder.setNeutralButton("有思惟的",?new?DialogInterface.OnClickListener()?{??
  11. ????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  12. ????????showDialog("你选择了有思惟的");??????????????????????
  13. ????}??
  14. });??
  15. builder.setNegativeButton("主题强的",?new?DialogInterface.OnClickListener()?{??
  16. ????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  17. ????????showDialog("你选择了主题强的");????
  18. ????}??
  19. });??
  20. builder.create().show();??





3.列表框



Android中的对话框AlertDialog施用技能合集

这个数组用于列表选择




view plain


  1. final?String[]?mItems?=?{"item0","item1","itme2","item3","itme4","item5","item6"};??








view plain


  1. AlertDialog.Builder?builder?=?new?AlertDialog.Builder(MainDialog.this);???
  2. ????????builder.setTitle("列表选择框");??
  3. ????????builder.setItems(mItems,?new?DialogInterface.OnClickListener()?{??
  4. ????????????public?void?onClick(DialogInterface?dialog,?int?which)?{??
  5. ????????????????//点击后弹出窗口选择了第几项??
  6. ????????????????showDialog("你选择的id为"?+?which?+?"?,?"?+?mItems[which]);??
  7. ????????????}??
  8. ????????});??
  9. ????????builder.create().show();??




4.单项选择列表框


Android中的对话框AlertDialog施用技能合集Android中的对话框AlertDialog施用技能合集

mSingleChoice 用于记录单选中的ID




view plain


  1. int?mSingleChoiceID?=?-1;??



view plain


  1. AlertDialog.Builder?builder?=?new?AlertDialog.Builder(MainDialog.this);???
  2. ??
  3. mSingleChoiceID?=?-1;??
  4. builder.setIcon(R.drawable.icon);??
  5. ????builder.setTitle("单项选择");??
  6. ????builder.setSingleChoiceItems(mItems,?0,?new?DialogInterface.OnClickListener()?{??
  7. ????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  8. ????????????????mSingleChoiceID?=?whichButton;??
  9. ????????????????showDialog("你选择的id为"?+?whichButton?+?"?,?"?+?mItems[whichButton]);??
  10. ????????}??
  11. ????});??
  12. ????builder.setPositiveButton("断定",?new?DialogInterface.OnClickListener()?{??
  13. ????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  14. ????????????if(mSingleChoiceID?>?0)?{??
  15. ????????????showDialog("你选择的是"?+?mSingleChoiceID);??
  16. ????????????}??
  17. ????????}??
  18. ????});??
  19. ????builder.setNegativeButton("作废",?new?DialogInterface.OnClickListener()?{??
  20. ????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  21. ??
  22. ????????}??
  23. ????});??
  24. ???builder.create().show();??





5.进度条框


Android中的对话框AlertDialog施用技能合集


点击进度条框按钮后 开启一个线程策画读取的进度 假设读取停止为 100
Progress在小于100的时辰一向在线程中做轮回++ 只到读取停止后,停止线程。



view plain


  1. ??????????mProgressDialog?=?new?ProgressDialog(MainDialog.this);??
  2. ?????mProgressDialog.setIcon(R.drawable.icon);??
  3. ?????mProgressDialog.setTitle("进度条窗口");??
  4. ?????mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);??
  5. ?????mProgressDialog.setMax(MAX_PROGRESS);??
  6. ?????mProgressDialog.setButton("断定",?new?DialogInterface.OnClickListener()?{??
  7. ?????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  8. ?????????????//这里添加点击后的逻辑??
  9. ?????????}??
  10. ?????});??
  11. ?????mProgressDialog.setButton2("作废",?new?DialogInterface.OnClickListener()?{??
  12. ?????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  13. ?????????????//这里添加点击后的逻辑??
  14. ?????????}??
  15. ?????});??
  16. ?????mProgressDialog.show();??
  17. ?????new?Thread(this).start();??
  18. ??
  19. ic?void?run()?{??
  20. int?Progress?=?0;??
  21. while(Progress?<?MAX_PROGRESS)?{??
  22. try?{??
  23. ????Thread.sleep(100);??
  24. ????Progress++;????
  25. ????mProgressDialog.incrementProgressBy(1);??
  26. }?catch?(InterruptedException?e)?{??
  27. ????//?TODO?Auto-generated?catch?block??
  28. ????e.printStackTrace();??
  29. }??
  30. ???
  31. }??



6.多项选择列表框



Android中的对话框AlertDialog施用技能合集Android中的对话框AlertDialog施用技能合集


MultiChoiceID 用于记录多选选中的id号 存在ArrayList中
选中后 add 进ArrayList
作废选中后 remove 出ArrayList




view plain


  1. ArrayList?<Integer>MultiChoiceID?=?new?ArrayList?<Integer>();??





view plain


  1. AlertDialog.Builder?builder?=?new?AlertDialog.Builder(MainDialog.this);???
  2. ??
  3. MultiChoiceID.clear();??
  4. builder.setIcon(R.drawable.icon);??
  5. ????builder.setTitle("多项选择");??
  6. ????builder.setMultiChoiceItems(mItems,??
  7. ????????????new?boolean[]{false,?false,?false,?false,?false,?false,?false},??
  8. ????????????new?DialogInterface.OnMultiChoiceClickListener()?{??
  9. ????????????????public?void?onClick(DialogInterface?dialog,?int?whichButton,??
  10. ????????????????????????boolean?isChecked)?{??
  11. ???????????????????if(isChecked)?{??
  12. ???????????????????????MultiChoiceID.add(whichButton);??
  13. ???????????????????????showDialog("你选择的id为"?+?whichButton?+?"?,?"?+?mItems[whichButton]);??
  14. ???????????????????}else?{??
  15. ???????????????????????MultiChoiceID.remove(whichButton);??
  16. ???????????????????}??
  17. ??????????????????????
  18. ????????????????}??
  19. ????????????});??
  20. ????builder.setPositiveButton("断定",?new?DialogInterface.OnClickListener()?{??
  21. ????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  22. ????????????String?str?=?"";??
  23. ????????????int?size?=?MultiChoiceID.size();??
  24. ????????????for?(int?i?=?0?;i?<?size;?i++)?{??
  25. ????????????str+=?mItems[MultiChoiceID.get(i)]?+?",?";??
  26. ????????????}??
  27. ????????????showDialog("你选择的是"?+?str);??
  28. ????????}??
  29. ????});??
  30. ????builder.setNegativeButton("作废",?new?DialogInterface.OnClickListener()?{??
  31. ????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  32. ??
  33. ????????}??
  34. ????});??
  35. ???builder.create().show();??



7.自定义布局


Android中的对话框AlertDialog施用技能合集

讲到自定义布局我就得多说一说了,为什么要多说一说呢??
其实自定义布局在Android的开辟中很是首要 因为它能让开辟者做出本身花团锦簇的Activity 而不消去应用体系呆板的界面。

自定义dialog有什么益处?

比如我们在开辟过长傍边 要经由过程介绍体系发送的一个广播弹出一个dialog . 然则dialog必须是基于activity才干浮现出来 若是没有activity 的话 法度就会溃散。所以我们可以写一个自定义的 dialog 把它定义成一个activity
如许我们收到一条打开dialog的广播后 直接启动这个 activity? 法度正常运行~~?

这就是自定义dialog的益处。

注明:下面这个例子只是写了自定义dialog 没有把它零丁的写在一个activity中 若是必要的话 可以本身改一下。



view plain


  1. AlertDialog.Builder?builder?=?new?AlertDialog.Builder(MainDialog.this);???
  2. ?LayoutInflater?factory?=?LayoutInflater.(this);??
  3. ?final?View?textEntryView?=?factory.inflate(R.layout.test,?null);??
  4. ?????builder.setIcon(R.drawable.icon);??
  5. ?????builder.setTitle("自定义输入框");??
  6. ?????builder.setView(textEntryView);??
  7. ?????builder.setPositiveButton("断定",?new?DialogInterface.OnClickListener()?{??
  8. ?????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  9. ???????????
  10. ?????????EditText?userName?=?(EditText)?textEntryView.findViewById(R.id.etUserName);??
  11. ?????????EditText?password?=?(EditText)?textEntryView.findViewById(R.id.etPassWord);??
  12. ?????????showDialog("姓名?:"??+?userName.getText().toString()??+?"暗码:"?+?password.getText().toString()?);??
  13. ?????????}??
  14. ?????});??
  15. ?????builder.setNegativeButton("作废",?new?DialogInterface.OnClickListener()?{??
  16. ?????????public?void?onClick(DialogInterface?dialog,?int?whichButton)?{??
  17. ??
  18. ?????????}??
  19. ?????});??
  20. ???builder.create().show();??







view plain


  1. <span?style="color:#000000;"><?xml?version="1.0"?encoding="utf-8"?>??
  2. <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android"??
  3. android:layout_height="wrap_content"???
  4. android:layout_width="wrap_content"??
  5. android:orientation="horizontal"??
  6. android:id="@+id/dialog">??
  7. <LinearLayout??
  8. android:layout_height="wrap_content"???
  9. android:layout_width="wrap_content"??
  10. android:orientation="horizontal"??
  11. android:id="@+id/dialogname">??
  12. ??
  13. <TextView?android:layout_height="wrap_content"??
  14. ???android:layout_width="wrap_content"??
  15. ??android:id="@+id/tvUserName"???
  16. ??android:text="姓名:"?/>??
  17. <EditText?android:layout_height="wrap_content"??
  18. ??android:layout_width="wrap_content"???
  19. ??android:id="@+id/etUserName"???
  20. ??android:minWidth="200dip"/>??
  21. </LinearLayout>????
  22. <LinearLayout??
  23. android:layout_height="wrap_content"???
  24. android:layout_width="wrap_content"??
  25. android:orientation="horizontal"??
  26. android:id="@+id/dialognum"??
  27. ?android:layout_below="@+id/dialogname"??
  28. >??
  29. ??<TextView?android:layout_height="wrap_content"??
  30. ???android:layout_width="wrap_content"??
  31. ??android:id="@+id/tvPassWord"???
  32. ??android:text="暗码:"?/>??
  33. <EditText?android:layout_height="wrap_content"??
  34. ??android:layout_width="wrap_content"???
  35. ??android:id="@+id/etPassWord"???
  36. ??android:minWidth="200dip"/>??
  37. ?</LinearLayout>????
  38. ??</RelativeLayout></span>??


8.读取进度框
显示一个正在转圈的进度条loading




view plain


  1. mProgressDialog?=?new?ProgressDialog(this);??
  2. ?mProgressDialog.setTitle("读取ing");??
  3. ?mProgressDialog.setMessage("正在读取中请稍候");??
  4. ?mProgressDialog.setIndeterminate(true);??
  5. ?mProgressDialog.setCancelable(true);??
  6. ?mProgressDialog.show();??

热点排行