images/loading.gif' data-original="http://images2015.cnblogs.com/blog/822717/201512/822717-20151210175450918-787711891.gif" />
测试代码:
布局:
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='/images/loading.gif' data-original="@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='/images/loading.gif' data-original="@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>
原标题:对话框AlertDialog的基本类型与创建
关键词: