你的位置:首页 > 操作系统

[操作系统]对话框AlertDialog的基本类型与创建


 

 

 

测试代码:

 布局:

activity_main.

 1 <LinearLayout ="http://schemas.android.com/apk/res/android" 2   ="http://schemas.android.com/tools" 3   android:layout_width="match_parent" 4   android:layout_height="match_parent" 5   android:orientation="vertical" 6   tools:context="com.zzw.testalerdialog.MainActivity" > 7  8   <Button 9     android:id="@+id/horizontally"10     android:layout_width="match_parent"11     android:layout_height="wrap_content"12     android:layout_gravity="center_horizontal"13     android:text="横向显示" />14 15   <Button16     android:id="@+id/vertical"17     android:layout_width="match_parent"18     android:layout_height="wrap_content"19     android:layout_gravity="center_horizontal"20     android:paddingTop="20dp"21     android:text="竖向显示" />22 23   <Button24     android:id="@+id/singleChoice"25     android:layout_width="match_parent"26     android:layout_height="wrap_content"27     android:layout_gravity="center_horizontal"28     android:paddingTop="20dp"29     android:text="单选框显示" />30 31   <Button32     android:id="@+id/multiChoice"33     android:layout_width="match_parent"34     android:layout_height="wrap_content"35     android:layout_gravity="center_horizontal"36     android:paddingTop="20dp"37     android:text="多选框显示" />38 39   <Button40     android:id="@+id/myDialog"41     android:layout_width="match_parent"42     android:layout_height="wrap_content"43     android:layout_gravity="center_horizontal"44     android:paddingTop="20dp"45     android:text="自定义显示" />46 47   <ImageView48     android:layout_width="match_parent"49     android:layout_height="wrap_content"50     android:layout_gravity="center_horizontal"51     android:layout_weight="1"52     android:src="@drawable/ic_launcher" />53 54 </LinearLayout>

 

 JAVA代码:

 1 package com.zzw.testalerdialog; 2  3 import android.app.Activity; 4 import android.app.AlertDialog; 5 import android.content.Context; 6 import android.content.DialogInterface; 7 import android.os.Bundle; 8 import android.view.View; 9 import android.widget.Toast; 10  11 public class MainActivity extends Activity implements View.OnClickListener { 12  13   private Context context; 14  15   @Override 16   protected void onCreate(Bundle savedInstanceState) { 17     super.onCreate(savedInstanceState); 18     setContentView(R.layout.activity_main); 19  20     init(); 21   } 22  23   private void init() { 24  25     context = this; 26  27     findViewById(R.id.horizontally).setOnClickListener(this); 28     findViewById(R.id.vertical).setOnClickListener(this); 29     findViewById(R.id.singleChoice).setOnClickListener(this); 30     findViewById(R.id.multiChoice).setOnClickListener(this); 31     findViewById(R.id.myDialog).setOnClickListener(this); 32      33   } 34  35   // 横向类型显示 36   private void horizontallyShow() { 37  38     AlertDialog dialog = new AlertDialog.Builder(context).create(); 39     dialog.setIcon(R.drawable.ic_launcher); 40     dialog.setTitle("横向显示"); 41     dialog.setMessage("提示信息"); 42     // DialogInterface.BUTTON_POSITIVE作用是显示的顺序 43     dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() { 44  45       @Override 46       public void onClick(DialogInterface dialog, int which) { 47         Toast.makeText(context, "确定", 0).show(); 48       } 49     }); 50  51     dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() { 52  53       @Override 54       public void onClick(DialogInterface dialog, int which) { 55         Toast.makeText(context, "取消", 0).show(); 56       } 57     }); 58  59     dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "考虑", new DialogInterface.OnClickListener() { 60  61       @Override 62       public void onClick(DialogInterface dialog, int which) { 63         Toast.makeText(context, "考虑", 0).show(); 64       } 65     }); 66  67     dialog.show(); 68   } 69  70   // 竖向类型显示 71   private void verticalShow() { 72  73     final String[] items = new String[3]; 74     for (int i = 0; i < 3; i++) { 75       items[i] = "选项--" + i; 76     } 77  78     AlertDialog dialog = new AlertDialog.Builder(context).setItems(items, new DialogInterface.OnClickListener() { 79  80       @Override 81       public void onClick(DialogInterface dialog, int which) { 82  83         Toast.makeText(context, items[which], Toast.LENGTH_SHORT).show(); 84       } 85     }).create(); 86  87     dialog.setTitle("竖向显示"); 88     dialog.setIcon(R.drawable.ic_launcher); 89  90     dialog.show(); 91  92   } 93  94   // 单选框类型显示 95   private void singleChoiceShow() { 96  97     final String[] items = new String[3]; 98     for (int i = 0; i < 3; i++) { 99       items[i] = "选项--" + i;100     }101 102     AlertDialog.Builder mBuilder = new AlertDialog.Builder(context);103     // mBuilder.setIcon(R.drawable.ic_launcher);104     // mBuilder.setTitle("单选框显示");105 106     // checkedItem默认选择的位置参数107     mBuilder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() {108 109       @Override110       public void onClick(DialogInterface dialog, int which) {111         Toast.makeText(context, items[which], Toast.LENGTH_SHORT).show();112         dialog.dismiss();113 114       }115     });116 117     AlertDialog dialog = mBuilder.create();118     dialog.setIcon(R.drawable.ic_launcher);119     dialog.setTitle("单选框显示");120     dialog.show();121 122   }123 124   // 复选框类型显示125   private void multiChoiceShow() {126 127     final String[] items = new String[3];128     for (int i = 0; i < 3; i++) {129       items[i] = "选项--" + i;130     }131 132     AlertDialog.Builder mBuilder = new AlertDialog.Builder(context);133 134     // checkedItems为默认勾选的状态135     final boolean[] checkedItems = { false, true, false };136     // 这个监听的作用是用于检测item选中状态的变化137     mBuilder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {138 139       @Override140       public void onClick(DialogInterface dialog, int which, boolean isChecked) {141 142       }143     });144 145     AlertDialog dialog = mBuilder.create();146     dialog.setIcon(R.drawable.ic_launcher);147     dialog.setTitle("复选框显示");148 149     // 用于确定,知道用户勾选了那些选项150     dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {151 152       @Override153       public void onClick(DialogInterface dialog, int which) {154 155         String s = "";156         for (int i = 0; i < items.length; i++) {157           if (checkedItems[i])158             s += items[i] + "\n";159         }160         Toast.makeText(context, s, Toast.LENGTH_SHORT).show();161       }162     });163 164     // 用于取消165     dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "取消", new DialogInterface.OnClickListener() {166 167       @Override168       public void onClick(DialogInterface dialog, int which) {169 170       }171     });172 173     dialog.show();174   }175 176   177   //自定义类型显示178   private void myDialogShow(){179     180     AlertDialog.Builder mBuilder = new AlertDialog.Builder(context);181     182     mBuilder.setView(getLayoutInflater().inflate(R.layout.my_dialog, null));183     184     AlertDialog dialog=mBuilder.create();185 //    dialog.setIcon(R.drawable.ic_launcher);186 //    dialog.setTitle("自定义的对话框");187     dialog.show();188   }189   190   @Override191   public void onClick(View v) {192 193     switch (v.getId()) {194     case R.id.horizontally:195       196       horizontallyShow();197       break;198     case R.id.vertical:199       200       verticalShow();201       break;202     case R.id.singleChoice:203 204       singleChoiceShow();205       break;206     case R.id.multiChoice:207 208       multiChoiceShow();209       break;210     case R.id.myDialog:211       myDialogShow();212       break;213       214     }215   }216 217 }

 

 

自定义的布局my_dialog.

 1 <??> 2 <LinearLayout ="http://schemas.android.com/apk/res/android" 3   android:background="#80CBC4" 4   android:layout_width="match_parent" 5   android:layout_height="match_parent" 6   android:orientation="vertical" > 7  8   <ImageView 9     android:layout_width="wrap_content"10     android:layout_height="wrap_content"11     android:layout_gravity="center_horizontal"12     android:src="@drawable/ic_launcher" />13 14   <TextView15     android:layout_width="wrap_content"16     android:layout_height="wrap_content"17     android:layout_gravity="center_horizontal"18     android:text="www.cnblogs.com/zzw1994"19     android:textColor="@android:color/holo_red_light" />20 21 </LinearLayout>