參考資料: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() {
往往會報錯,詳細·····