Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Android dialog應用經驗總結

Android dialog應用經驗總結

編輯:高級開發

android手機操作系統是一款由谷歌推出的開源操作系統。在智能手機領域中,這一操作系統占據著非常重要的地位。在這裡我就先來了解一下android dialog的實現方法。希望可以給大家帶來一些幫助。

  • android Theme詳細內容概述
  • android應用技巧總結
  • android顯示網絡圖片相關實現方法淺談
  • android開機自啟動具體操作方法簡介
  • android短信發送功能實現技巧分享

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. return null;
  88. } }

android dialog的對話框還在初始化得過程中,delete方法就調用了,說明dialog是另開一個線程的,同時提供回調方法

3、取得dialog中Edittext的內容問題

由於android dialog本身沒有提供取得Edittext內容的回調函數,所以需要自己寫.....

簡單的方法是使用activity偽裝dialog,有布局更自由,消息傳遞更方便地優點

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved