久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android學(xué)習(xí)筆記28:對話框Dialog控件的使用

 flowray 2016-08-14

  在Android開發(fā)中,,經(jīng)常需要在界面上彈出一些對話框,,用來提示用戶輸入信息或者讓用戶做出選擇,這就是Android中的對話框功能,。

  那么如何來實現(xiàn)這些對話框功能呢,?在Android中,對話框是使用Dialog類來實現(xiàn),。其中,,Alertialog用于實現(xiàn)警告對話框;ProgressDialog用于實現(xiàn)帶進度條的對話框,;DatePickerDialog用于實現(xiàn)日期選擇對話框,;TimePickerDialog用于實現(xiàn)時間選擇對話框。

  關(guān)于DatePickerDialog和TimePickerDialog的使用,,我已經(jīng)在博文《Android學(xué)習(xí)筆記23:時間日期控件的使用》(http://www.cnblogs.com/menlsh/archive/2013/02/23/2923867.html)中做了詳細介紹,。在本篇博文中,我將以一個實例演示如何使用Alertialog和ProgressDialog對話框,。

 

1.AlertDialog.Builder類

  在Android開發(fā)中,,可以通過使用AlertDialog.Builder類來實現(xiàn)自定義的警告對話框。在使用AlertDialog.Builder類創(chuàng)建對話框的時候,,通常需要用到以下的一些常用方法:

 ?。?)setTitle();     //設(shè)置對話框標(biāo)題 

  (2)setIcon();     //設(shè)置對話框圖標(biāo) 

 ?。?)setMessage();    //設(shè)置對話框內(nèi)容 

 ?。?)setItems();      //設(shè)置要在對話框中顯示的項目列表 

  (5)setView();      //設(shè)置自定義的對話框樣式 

 ?。?)setSingleChoiceItems();   //設(shè)置對話框顯示一個單選框

 ?。?)setMultiChoiceItems();        //設(shè)置對話框顯示一系列的復(fù)選框 

  (8)setPositiveButton();     //設(shè)置對話框顯示一個“確定”按鈕 

 ?。?)setNeutralButton();     //設(shè)置對話框顯示一個“退出”按鈕 

 ?。?0)setNegativeButton();    //設(shè)置對話框顯示一個“取消”按鈕

  (11)create();     //創(chuàng)建一個AlertDialog對話框

 ?。?2)show();      //顯示對話框

  了解了以上這些創(chuàng)建AlertDialog對話框時的常用方法之后,,我們就可以很容易的創(chuàng)建出一個AlertDialog對話框了,具體實現(xiàn)的源碼如下:

復(fù)制代碼
 1   //創(chuàng)建一個AlertDialog對話框
 2   //Author : 博客園-依舊淡然
 3   Dialog dialog = new AlertDialog.Builder(this)
 4       .setTitle("登錄提示")
 5       .setIcon(R.drawable.questionmark)
 6       .setMessage("是否登錄,?")
 7       .setPositiveButton("確定", this)
 8       .setNeutralButton("退出", this)
 9       .create();        
10           
11   dialog.show();
復(fù)制代碼

  其中,,我們?yōu)锳lertDialog對話框設(shè)置了標(biāo)題為“登錄提示”,設(shè)置了對話框圖標(biāo)(從drawable中加載),,設(shè)置了對話框的內(nèi)容為“是否登錄,?”,,并為對話框設(shè)置了兩個按鈕(一個“確定”和一個“退出”按鈕)。程序運行后的效果如圖1所示,。

圖1 登錄提示界面

 

2.按鍵監(jiān)聽

  在如圖1所示的AlertDialog對話框中,,有兩個按鈕:一個“確定”和一個“退出”按鈕,我們需要對這兩個按鈕進行事件監(jiān)聽,,以響應(yīng)用戶的不同操作,。

  要實現(xiàn)對AlertDialog對話框中的按鈕事件監(jiān)聽也很容易,我們只需要繼承DialogInterface.OnClickListener接口,,并實現(xiàn)DialogInterface.OnClickListener接口中的onClick()抽象方法即可,。具體實現(xiàn)方法如下:

復(fù)制代碼
 1   /*
 2      * Function     :    事件監(jiān)聽處理
 3      * Param        :    dialog對話框?qū)ο螅粀hich對話框中按鈕對象
 4      * Author       :    博客園-依舊淡然
 5      */
 6     public void onClick(DialogInterface dialog, int which) {
 7         switch (which) {
 8         case DialogInterface.BUTTON_POSITIVE:            //點擊“確定”進入登錄界面
 9             loginDialog = new LoginDialog(this);
10             break;
11         case DialogInterface.BUTTON_NEUTRAL:             //點擊“退出”
12             this.finish();
13             break;
14         }
15     }
復(fù)制代碼

  可以看出,,在如圖1所示的登錄提示界面點擊“確定”將跳轉(zhuǎn)到登錄界面(關(guān)于登錄界面的實現(xiàn)隨后會介紹),,點擊“退出”將通過使用finish當(dāng)前Activity的方法消去登錄提示界面。

 

3.自定義AlertDialog對話框式樣

  通過以上的方法只能實現(xiàn)一些固定式樣的AlertDialog對話框,,那么如何來實現(xiàn)自定義的AlertDialog對話框式樣呢,?下面我們就以登錄界面為例實現(xiàn)一個簡單的自定義AlertDialog對話框。

  實現(xiàn)后的登錄界面如圖2所示,。

圖2 登錄界面

  可以看出,,在自定義的AlertDialog對話框中,我們加入了兩個TextView控件(用來顯示“賬號:”和“密碼:”)以及兩個EditText控件(用來輸入“賬號”和“密碼”),。

  如何將這些控件加入到自定義的AlertDialog對話框中呢,?

  首先,我們需要創(chuàng)建一個xml布局文件來加載這些控件,。這里,,我創(chuàng)建了一個名為“l(fā)ogindialog.xml”的布局文件。在該布局文件中完成對上述四個控件的布局即可,,具體的實現(xiàn)方法如下:

復(fù)制代碼
 1   <?xml version="1.0" encoding="utf-8"?>
 2   <LinearLayout xmlns:android="http://schemas./apk/res/android"
 3         android:orientation="vertical"
 4         android:layout_width="match_parent"
 5         android:layout_height="wrap_content"    >
 6     
 7         <TextView
 8             android:id="@+id/text_username"
 9             android:layout_width="match_parent"
10             android:layout_height="wrap_content"
11             android:layout_marginLeft="10dp"
12             android:gravity="left"
13             android:text="賬號:"
14             android:textColor="#FFFFFF"    ></TextView>
15     
16         <EditText
17             android:id="@+id/edit_username"
18             android:layout_width="match_parent"
19             android:layout_height="wrap_content"
20             android:layout_marginLeft="10dp"
21             android:layout_marginRight="10dp"
22             android:gravity="left"
23             android:hint="請輸入賬號"
24             android:inputType="none"
25             android:digits="abcdefghigklmnopqrstuvwxyz1234567890_"    ></EditText>
26     
27         <TextView
28             android:id="@+id/text_password"
29             android:layout_width="match_parent"
30             android:layout_height="wrap_content"
31             android:layout_marginLeft="10dp"
32             android:gravity="left"
33             android:text="密碼:"
34             android:textColor="#FFFFFF"    ></TextView>
35     
36         <EditText
37             android:id="@+id/edit_password"
38             android:layout_width="match_parent"
39             android:layout_height="wrap_content"
40             android:layout_marginLeft="10dp"
41             android:layout_marginRight="10dp"
42             android:gravity="left"
43             android:hint="請輸入密碼"
44             android:inputType="textPassword"
45             android:digits="1234567890"    ></EditText>
46 
47   </LinearLayout>
復(fù)制代碼

  完成xml布局文件的編寫之后,,我們需要將該xml文件動態(tài)加載并轉(zhuǎn)化為View對象,然后通過AlertDialog.Builder類的setView()方法將該View對象加載進來,,就可以完成自定義AlertDialog對話框的創(chuàng)建了,。具體的實現(xiàn)方法如下:

復(fù)制代碼
 1   /*
 2     * Function    :    構(gòu)造函數(shù)
 3     * Param       :    context上下文對象
 4     * Author      :    博客園-依舊淡然
 5     */
 6     public LoginDialog (Context context) {
 7             
 8         this.mContext = context;
 9             
10         //動態(tài)加載布局生成View對象
11         LayoutInflater layoutInflater = LayoutInflater.from(mContext);
12         View longinDialogView = layoutInflater.inflate(R.layout.logindialog, null);
13             
14         //獲取布局中的控件
15         mUserName = (EditText)longinDialogView.findViewById(R.id.edit_username);
16         mPassword = (EditText)longinDialogView.findViewById(R.id.edit_password);
17             
18         //創(chuàng)建一個AlertDialog對話框
19         longinDialog = new AlertDialog.Builder(mContext)
20             .setTitle("登錄框")
21             .setView(longinDialogView)                //加載自定義的對話框式樣
22             .setPositiveButton("確定", this)
23             .setNeutralButton("取消", this)
24             .create();  
25             
26         longinDialog.show();
27     }
復(fù)制代碼

  其中,通過mUserName = (EditText)longinDialogView.findViewById(R.id.edit_username);語句,,我們可以獲得賬號輸入控件,。通過mPassword = (EditText)longinDialogView.findViewById(R.id.edit_password);語句,我們可以獲得密碼輸入控件,。從而進一步獲取這兩個EditText中的內(nèi)容,,判斷后用以進行下一步的操作。

 

4.帶進度條的對話框ProgressDialog

  在如圖2所示的登錄界面中,,輸入正確的用戶名和密碼之后,,點擊“確定”,將跳轉(zhuǎn)到登錄等待界面,,如圖3所示,。

圖3 登錄等待界面

  顯然可見,在圖3所示的登錄等待界面中有一個圓形的進度條(當(dāng)然也可以加載一個長條形的進度條),。要顯示一個如圖3所示的帶進度條的對話框也很簡單,,創(chuàng)建一個ProgressDialog對象并調(diào)用ProgressDialog類的show()方法進行顯示即可。

  ProgressDialog類的show()方法有四種形式,,如圖4所示,。

圖4 ProgressDialog類的show()方法

  這里,我們選用最后一種方式實現(xiàn)帶進度條的對話框的顯示,,具體實現(xiàn)方法如下:

1   //顯示一個帶進度條的對話框
2   //Author : 博客園-依舊淡然
3   mProgressDialog = ProgressDialog.show(mContext, "請等待", "正在登錄......", true);

  通過以上的方法,,就可以顯示出來一個如圖3所示的帶有進度條的對話框了。

 

 

相關(guān)資料:

Android對話框(Dialog)大全

http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html

Android的AlertDialog詳解

http://www./kf/201205/131876.html

Android開發(fā)中Dialog對話框的使用

http://www./html/2011-12-1/20111211018584013.htm

AlertDialog中獲取控件的值

http://blog.163.com/ygq_hcl/blog/static/16242380520122815815902/

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多