Android Dialog對話框的七種形式的使用


參考資料:http://www.oschina.net/question/54100_32486

注:代碼進行了整理

在Android開發中,我們經常會需要在Android界面上彈出一些對話框,比如詢問用戶或者讓用戶選擇。這些功能我們叫它Android Dialog對話框,在我們使用Android的過程中,我歸納了一下,Android Dialog的類型無非也就7種,下面我分別向大家介紹這7種Android Dialog對話框的使用方法,希望對大家能有所幫助。

1.該效果是當按返回按鈕時彈出一個提示,來確保無誤操作,采用常見的對話框樣式。

 

 1 //一般的Dialog
 2     public void normalDialog(){
 3     AlertDialog.Builder bulider =new Builder(MainActivity.this);
 4     bulider.setIcon(R.drawable.ic_launcher);//在title的左邊顯示一個圖片
 5     bulider.setTitle("提示");
 6     bulider.setMessage("你確定你要關掉它?");
 7     bulider.setPositiveButton("確定", new DialogInterface.OnClickListener() {
 8         
 9         @Override
10         public void onClick(DialogInterface dialog, int arg1) {
11             dialog.dismiss();
12             MainActivity.this.finish();
13             
14         }
15     });
16     bulider.setNegativeButton("取消", new DialogInterface.OnClickListener() {
17         
18         @Override
19         public void onClick(DialogInterface dialog, int arg1) {
20             // TODO Auto-generated method stub
21             dialog.dismiss();
22         }
23     });
24     bulider.create().show();
25     
26 }

 

 1 new AlertDialog.Builder(MachineRegister.this)
 2                         .setTitle("提示")
 3                         .setMessage("設備注冊成功")
 4                         .setPositiveButton("確定",
 5                                 new DialogInterface.OnClickListener() {
 6 
 7                                     public void onClick(DialogInterface dialog,
 8                                             int which) {
 9                                         // TODO Auto-generated method                                   
11 
12                                     }
13                                     //當點擊返回時,就停留在本界面
14                                 })
15                          .setNegativeButton("返回", 
16                                  new DialogInterface.OnClickListener() {
17 
18                                         public void onClick(DialogInterface dialog,
19                                                 int which) {
20                                          
21                                         }
22                             
23 
24                                     }).show();

 

 2.改變了對話框的圖表,添加了三個按鈕

 

 1 //三個按鈕的對話框
 2     public void sanDialog(){
 3         AlertDialog.Builder bulider =new Builder(MainActivity.this);
 4         bulider.setIcon(R.drawable.ic_launcher);//在title的左邊顯示一個圖片
 5         bulider.setTitle("提示");
 6         bulider.setMessage("你確定你要關掉它?");
 7         //最左邊的按鈕(positive :積極地)
 8         bulider.setPositiveButton("確定", new DialogInterface.OnClickListener() {
 9             
10             @Override
11             public void onClick(DialogInterface dialog, int arg1) {
12                 dialog.dismiss();
13                 MainActivity.this.finish();
14                 
15             }
16         });
17         //最右邊的鈕(negative:消極的)
18         bulider.setNegativeButton("取消", new DialogInterface.OnClickListener() {
19             
20             @Override
21             public void onClick(DialogInterface dialog, int arg1) {
22                 // TODO Auto-generated method stub
23                 dialog.dismiss();
24             }
25         });
26         //中間的鈕
27         bulider.setNeutralButton("逗你玩", new DialogInterface.OnClickListener() {
28             
29             @Override
30             public void onClick(DialogInterface arg0, int arg1) {
31                 // TODO Auto-generated method stub
32                 
33             }
34         });
35         bulider.create().show();
36         
37         
38     }  

 

 3.信息內容是一個簡單的View類型

 

 1 //信息內容是一個簡單的View類型
 2     public void shuruDialog(){
 3         AlertDialog.Builder builder =new Builder(MainActivity.this);
 4         builder.setIcon(R.drawable.ic_launcher);
 5         builder.setTitle("請輸入");
 6         
 7         //放進去任意簡單的view
 8         builder.setView(new EditText(this));  
 9         builder.setPositiveButton("確定", null);
10         builder.setNegativeButton("取消", null);
11         
12         builder.create().show();
13     }

 

 4.信息內容是一組單選框

 1 //信息內容是單選框
 2     public void danxuanDialog(){
 3         AlertDialog.Builder builder =new Builder(MainActivity.this);
 4         builder.setIcon(R.drawable.ic_launcher);
 5         builder.setTitle("單選框");
 6           //定義單選框        
 7         builder.setSingleChoiceItems(new String[]{"item1","item2"} ,0, new DialogInterface.OnClickListener() {
 8             
 9             @Override
10             public void onClick(DialogInterface arg0, int arg1) {
11                 //對選擇項綁定事件
12                 
13             }
14         }); 
15         builder.setNegativeButton("取消", null);
16         
17         builder.create().show();
18     }

 

 5.信息內容是一組多選框

 

 1  //信息內容是復選框
 2     public void fuxuanDialog(){
 3         AlertDialog.Builder builder =new Builder(MainActivity.this);
 4         builder.setIcon(R.drawable.ic_launcher);
 5         builder.setTitle("復選框");
 6           //定義復選框        
 7         builder.setMultiChoiceItems(new String[]{"item1","item2"}, null, null);
 8         builder.setPositiveButton("確定", null);        
 9         builder.setNegativeButton("取消", null);
10         
11         builder.create().show();
12     }

 

 6.信息內容是一組簡單列表項

 

 1  //信息內容是簡單地列表項
 2     
 3     public void liebiaoDialog(){
 4         AlertDialog.Builder builder =new Builder(MainActivity.this);
 5         builder.setIcon(R.drawable.ic_launcher);
 6         builder.setTitle("列表項");
 7           //定義復選框        
 8         builder.setItems(new String[]{"item1","item2"}, null);
 9         builder.setPositiveButton("確定", null);        
10         builder.setNegativeButton("取消", null);
11         
12         builder.create().show();
13     }

 

 7.信息內容是一個自定義的布局

 dialog布局文件代碼如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2  
 3   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 4    android:layout_height="wrap_content" android:layout_width="wrap_content"
 5    android:background="#ffffffff" android:orientation="horizontal"
 6    android:id="@+id/dialog">
 7    <TextView android:layout_height="wrap_content"
 8      android:layout_width="wrap_content"
 9     android:id="@+id/tvname" android:text="姓名:" />
10    <EditText android:layout_height="wrap_content"
11     android:layout_width="wrap_content" android:id="@+id/etname" android:minWidth="100dip"/>
12   </LinearLayout>

 

 創建dialog方法的代碼如下:

LayoutInflater inflater = getLayoutInflater();
     View layout = inflater.inflate(R.layout.dialog,
       (ViewGroup) findViewById(R.id.dialog));
     new AlertDialog.Builder(this).setTitle("自定義布局").setView(layout)
       .setPositiveButton("確定", null)
       .setNegativeButton("取消", null).show();

 好了,以上7種Android dialog對話框的使用方法就介紹到這里了,基本都全了,如果大家在android開發過程中遇到dialog的時候就可以拿出來看看。


注意:在使用dialog增加按鈕選項的時候,

 bulider.setPositiveButton("確定", new DialogInterface.OnClickListener() {
應該是紅色字體部分,而寫成:
bulider.setPositiveButton("確定", new OnClickListener() {
往往會報錯,詳細·····

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM