1. 程式人生 > >對話方塊建立新方式showDialog和DialogFragment

對話方塊建立新方式showDialog和DialogFragment

建立對話方塊
  一個對話方塊一般是一個出現在當前Activity之上的一個小視窗. 處於下面的Activity失去焦點, 對話方塊接受所有的使用者互動. 對話方塊一般用於提示資訊和與當前應用程式直接相關的小功能.
  Android API 支援下列型別的對話方塊物件:
  警告對話方塊 AlertDialog:  一個可以有0到3個按鈕, 一個單選框或複選框的列表的對話方塊. 警告對話方塊可以建立大多數的互動介面, 是推薦的型別.
  進度對話方塊 ProgressDialog:  顯示一個進度環或者一個進度條. 由於它是AlertDialog的擴充套件, 所以它也支援按鈕.
  日期選擇對話方塊 DatePickerDialog:  讓使用者選擇一個日期.

  時間選擇對話方塊 TimePickerDialog:  讓使用者選擇一個時間.
  如果你希望自定義你的對話方塊, 可以擴充套件Dialog類.
  Showing a Dialog 顯示對話方塊
  一個對話方塊總是被建立和顯示為一個Activity的一部分. 你應該在Activity的onCreateDialog(int)中建立對話方塊. 當你使用這個回撥函式時,Android系統自動管理每個對話方塊的狀態並將它們和Activity連線, 將Activity變為對話方塊的"所有者". 這樣,每個對話方塊從Activity繼承一些屬性. 例如,當一個對話方塊開啟時, MENU鍵會顯示Activity的選單, 音量鍵會調整Activity當前使用的音訊流的音量.

  注意: 如果你希望在onCreateDialog()方法之外建立對話方塊, 它將不會依附在Activity上. 你可以使用setOwnerActivity(Activity)來將它依附在Activity上.
  當你希望顯示一個對話方塊時, 呼叫showDialog(int)並將對話方塊的id傳給它.
  當一個對話方塊第一次被請求時,Android呼叫onCreateDialog(int). 這裡是你初始化對話方塊的地方. 這個回撥函式傳入的id和showDialog(int)相同. 建立對話方塊之後,將返回被建立的物件.
  在對話方塊被顯示之前,Android還會呼叫onPrepareDialog(int, Dialog). 如果你希望每次顯示對話方塊時有動態更改的內容, 那麼就改寫這個函式. 該函式在每次一個對話方塊開啟時都呼叫. 如果你不定義該函式,則對話方塊每次開啟都是一樣的. 該函式也會傳入對話方塊的id以及你在onCreateDialog()中建立的Dialog物件.

  最好的定義onCreateDialog(int) 和onPrepareDialog(int, Dialog) 的方法就是使用一個switch語句來檢查傳入的id. 每個case建立相應的對話方塊. 

FragmentDialog:

  1. publicclass LoginDialogFragment extends DialogFragment  
  2. {  
  3.     @Override
  4.     public Dialog onCreateDialog(Bundle savedInstanceState)  
  5.     {  
  6.         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());  
  7.         // Get the layout inflater
  8.         LayoutInflater inflater = getActivity().getLayoutInflater();  
  9.         View view = inflater.inflate(R.layout.fragment_login_dialog, null);  
  10.         // Inflate and set the layout for the dialog
  11.         // Pass null as the parent view because its going in the dialog layout
  12.         builder.setView(view)  
  13.                 // Add action buttons
  14.                 .setPositiveButton("Sign in",  
  15.                         new DialogInterface.OnClickListener()  
  16.                         {  
  17.                             @Override
  18.                             publicvoid onClick(DialogInterface dialog, int id)  
  19.                             {  
  20.                             }  
  21.                         }).setNegativeButton("Cancel"null);  
  22.         return builder.create();  
  23.     }  
  24. }  
  1. publicvoid showLoginDialog(View view)  
  2.     {  
  3.         LoginDialogFragment dialog = new LoginDialogFragment();  
  4.         dialog.show(getFragmentManager(), "loginDialog");  
  5.     }  

相關推薦

對話方塊建立方式showDialogDialogFragment

建立對話方塊  一個對話方塊一般是一個出現在當前Activity之上的一個小視窗. 處於下面的Activity失去焦點, 對話方塊接受所有的使用者互動. 對話方塊一般用於提示資訊和與當前應用程式直接相關的小功能.  Android API 支援下列型別的對話方塊物件:  警

十一、Qt對話方塊建立與銷燬

模態對話方塊就是指在子對話方塊彈出時,焦點被強行集中於該子對話方塊,子對話方塊不關閉,使用者將無法操作其他的視窗。非模態相反,使用者仍然可以操作其他的視窗,包括該子對話方塊的父對話方塊。 如果從執行緒角度來講,模態對話方塊實際上是執行緒阻塞的,也就是子對話方塊是一個執行

VC非模態對話方塊建立銷燬

MFC應用程式中開啟模式對話方塊的函式呼叫順序 1.DoModal()             過載函式,過載DoModal()成員函式 2.PreSubclassWindow()   過載函式,允許首先子分類一個視窗 3.OnCreate()             訊息響應函式,響應WM_CREATE訊息

MFC(3):對話方塊建立基礎知識

  模態對話方塊:建立後不能對其他視窗進行操作 非模態對話方塊:建立後仍可以對其他視窗進行操作 新建專案-->MFC應用程式-->基於對話方塊、MFC標準-->完成 預設生成的類有:應用程式類、對話方塊類 誤操作關閉對話方塊的解決辦法:解決方案管理器-->點

[ObjectARX]示範建立圖層iterator的使用

在該應用程式中, 示範建立一個新的圖層,怎樣設定層的顏色和線型; 示範怎樣使用瀏覽器(iterator). 一、命令函式aaaMyGroupMyCommand的實現: static void aaaMyGroupMyCommand () { acutPr

對話方塊建立失敗

在做MFC程式時,退出時呼叫PostQuitMessage(0),然後出現“對話方塊建立失敗,應用程式將意外終止。”的警告提示。 其實這兩句提示是因為主對話方塊退出時的返回值為-1造成的,看看APP類的初始化就明白了。 INT_PTRnResponse = dlg.DoModal

基於單文件的對話方塊建立及注意事項

普通單文件介面執行時是一個文件形式,但我想要的單文件介面是一個對話方塊的行。 基於單文件對話方塊初始化 解決辦法: 在建立單文件工程DocView時,最後一步: 1.生成的類 檢視中 選擇基於CFormView ,不選擇預設的CView。 class CDocViewView : publi

MFC之對話方塊建立與銷燬總結

主void CMoshiwindowDlg::OnButton1()  {     // TODO: Add your control notification handler code here     CDialogproty dlg;      dlg.DoModa

檔案對話方塊CFileDialog類:開啟儲存

1.新建一個基於對話方塊的MFC工程 2.新增一個“Bottom”和“Edit Control”, 修改對應的ID為IDC_OPEN_BOTTOM,iDC_OPEN_EDIT。 3.雙擊Bottom”開啟“,編輯對應的訊息處理函式 void CO

OpenID倡議:別再建立的使用者名稱密碼

原文作者:Jeff Atwood隨著Stack Overflow開發工作的逐步深入,我們不可迴避地碰到了這個問題:我們需要讓使用者登入,即使網路上使用者名稱/密碼已經氾濫成災,我們也只能隨波逐流。我已經有50對使用者名稱/密碼了。我根本記不住它們。但是,為StackOverf

非模態對話方塊 建立 銷燬

非模態對話方塊 5.4.1 非模態對話方塊的特點 與模態對話方塊不同,非模態對話方塊不壟斷使用者的輸入,使用者開啟非模態對話方塊後,仍然可以與其它介面進行互動。 非模態對話方塊的設計與模態對話方塊基本類似,也包括設計對話方塊模板和設計CDialog類的派

Qt對話方塊/視窗、模態非模態、Qt::WA_DeleteOnClose

聊一聊Qt中,對話方塊/視窗、模態、非模態、獨立視窗釋放記憶體(設定視窗屬性為Qt::WA_DeleteOnClose)。 用得最多的就是對話方塊/視窗,QMainWindow、QWidget、QDi

系統對話方塊建立

建立對話方塊程式碼: protected void dialogOut() { AlertDialog.Builder builder = new AlertDialog.Builder(mContext); builder

Java7中NIO學習之建立的檔案資料夾

文章來源: http://evil850209.iteye.com/blog/1924446 public static void main(String[] args) { try {

MFC對話方塊程式中的OnCreateOnInitDialog函式

        最近做一個簡單的專案,需要使用到MFC。雖說這個東西已經很老舊了,但是為了專案使用,開始學它。需要將一個osg三維檔案顯示在控制元件中,這裡使用編輯框空間,除錯過程中遇到了CEdit

根據已有的表建立的表從另外的表獲取資料到的表裡面方法sql

create table   table_name1 as select  * from  table_name2  where  1=2 insert into  tableName1(col1,col2) select col1,col2 from  tableName

android開發 -- 對話方塊 Dialog DialogFragment 詳解( Android 官方推薦 DialogFragment 建立對話方塊

 Android 官方推薦使用 : DialogFragment 建立對話方塊 ,不推薦直接使用Dialog建立對話方塊,所以能用寫對話方塊儘量用DialogFragment。自定義對話方塊也方便很多 推薦一篇DialogFragment的文章:http://blog.csdn.n

java Swing 彈出新對話方塊的方法,以及關閉對話方塊遇到的問題解決方法

GIFShow 是JFrame的一個繼承類。 public class GIFShow extends JFrame {} 在另一個視窗中的button事件中,實現             &

VS2010中控制元件的程式設計------顏色按鈕類顏色對話方塊

(1)      顏色按鈕類和顏色對話方塊 1) 顏色對話方塊 MFC提供了顏色對話方塊類CMFCColorDialog進行顏色的選擇,系統可以利用DoModal()呼叫,然後選擇相應的顏色。 CMFCColorDialog dlg(m_Color,0, this);   

MFC 建立非模態對話方塊銷燬過程

今天專案中遇到的問題,記錄下來,做個總結。 一個簡單的目的是建立一個非模態對話方塊並在對話方塊關閉後將其銷燬。 這裡的銷燬包括:銷燬對話方塊物件資源和對話方塊物件指標; 首先說建立對話方塊: 一、模態對話方塊(model dialog box) 在程式執行的過程中,若出