Android dialog应用经验总结

移动开发 Android
我们在这里将会为大家详细介绍一下有关Android dialog的实现方法。大家可以通过我们在这里介绍的内容充分掌握这一应用技巧。

Android手机操作系统是一款由谷歌推出的开源操作系统。在智能手机领域中,这一操作系统占据着非常重要的地位。在这里我就先来了解一下Android dialog的实现方法。希望可以给大家带来一些帮助。#t#

1、网上说的很多,Android dialog实现的方法有两个

一个是通过AlertDialog.Builder 初始化dialog 然后再showDialog

另一个是通过将androidManifest.xml中的activity的属性设为android:theme="@android:style/Theme.Dialog,伪装为dialog

2、showDialog的线程问题

Android dialog的显示不会阻塞ui线程.....

例子

Java代码

  1. protected void onListItemClick(ListView l, View v, 
    int position, long id) {   
  2. Intent intent = new Intent();   
  3. Bundle bundle = new Bundle();   
  4. switch (editMode) {   
  5. case SELECT:   
  6. bundle.putString("listName", list.get
    (position).getName());   
  7. intent.setClass(this, AudioPlayer.class);   
  8. intent.putExtras(bundle);   
  9. startActivity(intent);   
  10. break;   
  11. case RENAME:   
  12. oldName = list.get(position).getName();   
  13. intent.setClass(MusicList.this, DialogActivity.class);   
  14. startActivityForResult(intent, Preferences.RENAME);   
  15. break;   
  16. case DELETE:   
  17. oldName = list.get(position).getName();   
  18. showDialog(CONFIRM_DIALOG);   
  19. delete(oldName,flag);   
  20. break;   
  21. }   
  22. editMode = EditMode.SELECT;   
  23. protected Dialog onCreateDialog(int id) {   
  24. switch (id) {   
  25. case CONFIRM_DIALOG:   
  26. return new AlertDialog.Builder(MusicList.this).setIcon(   
  27. android.R.drawable.ic_dialog_alert).setTitle("确认删除?")   
  28. .setPositiveButton(R.string.confirm,   
  29. new DialogInterface.OnClickListener() {   
  30. public void onClick(DialogInterface dialog,   
  31. int whichButton) {   
  32. mListTool.deleteList(oldName);   
  33. flag = true;   
  34. }   
  35. }).setNegativeButton(R.string.cancel,   
  36. new DialogInterface.OnClickListener() {   
  37. public void onClick(DialogInterface dialog,   
  38. int whichButton) {   
  39. flag = false;   
  40. }   
  41. }).create();   
  42. }   
  43. return null;   
  44. } }   
  45. protected void onListItemClick(ListView l, View v, 
    int position, long id) {  
  46. Intent intent = new Intent();  
  47. Bundle bundle = new Bundle();  
  48. switch (editMode) {  
  49. case SELECT:  
  50. bundle.putString("listName", list.get(position).getName());  
  51. intent.setClass(this, AudioPlayer.class);  
  52. intent.putExtras(bundle);  
  53. startActivity(intent);  
  54. break;  
  55. case RENAME:  
  56. oldName = list.get(position).getName();  
  57. intent.setClass(MusicList.this, DialogActivity.class);  
  58. startActivityForResult(intent, Preferences.RENAME);  
  59. break;  
  60. case DELETE:  
  61. oldName = list.get(position).getName();  
  62. showDialog(CONFIRM_DIALOG);  
  63. delete(oldName,flag);  
  64. break;  
  65. }  
  66. editMode = EditMode.SELECT;  
  67. protected Dialog onCreateDialog(int id) {  
  68. switch (id) {  
  69. case CONFIRM_DIALOG:  
  70. return new AlertDialog.Builder(MusicList.this).setIcon(  
  71. android.R.drawable.ic_dialog_alert).setTitle("确认删除?")  
  72. .setPositiveButton(R.string.confirm,  
  73. new DialogInterface.OnClickListener() {  
  74. public void onClick(DialogInterface dialog,  
  75. int whichButton) {  
  76. mListTool.deleteList(oldName);  
  77. flag = true;  
  78. }  
  79. }).setNegativeButton(R.string.cancel,  
  80. new DialogInterface.OnClickListener() {  
  81. public void onClick(DialogInterface dialog,  
  82. int whichButton) {  
  83. flag = false;  
  84. }  
  85. }).create();  
  86.  
  87. }  
  88. return null;  
  89. } } 

Android dialog的对话框还在初始化得过程中,delete方法就调用了,说明dialog是另开一个线程的,同时提供回调方法

3、取得dialog中Edittext的内容问题

由于Android dialog本身没有提供取得Edittext内容的回调函数,所以需要自己写.....

简单的方法是使用activity伪装dialog,有布局更自由,消息传递更方便地优点

责任编辑:曹凯 来源: javaeye.com
相关推荐

2010-01-25 14:25:33

Android Int

2009-11-17 11:24:00

PHP应用技巧

2017-02-17 11:19:00

Android内存泄露分析总结

2010-01-26 13:28:11

Android开发要点

2009-12-31 10:21:53

Silverlight

2010-05-06 17:30:56

Oracle查询语句

2009-10-15 09:27:00

2010-01-06 15:52:11

软交换技术

2010-02-02 15:44:18

C++遍历集合

2009-10-27 10:46:27

ADSL接入技术

2010-01-25 13:37:07

Android传感器

2009-09-16 17:13:54

学习Linq

2009-08-19 09:24:43

AJAX引擎经验总结

2009-09-29 16:32:11

OJB Hiberna

2009-10-23 09:43:44

光纤接入网

2010-04-28 17:14:38

Oracle EXPL

2010-09-13 10:52:37

CSS定位

2017-01-05 16:29:00

2010-01-14 11:09:35

VB.NET文本框

2010-01-15 18:50:25

VB.NET资源文件
点赞
收藏

51CTO技术栈公众号