标签:
layout文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="com.hanqi.testapp2.TestActivity5" 11 android:orientation="vertical"> 12 13 <Button 14 android:layout_width="match_parent" 15 android:layout_height="wrap_content" 16 android:text="一般对话框" 17 android:onClick="bt1_onClick"/> 18 <Button 19 android:layout_width="match_parent" 20 android:layout_height="wrap_content" 21 android:onClick="bt2_onClick" 22 android:text="单选对话框"/> 23 <Button 24 android:layout_width="match_parent" 25 android:layout_height="wrap_content" 26 android:onClick="bt3_onClick" 27 android:text="复选对话框"/> 28 </LinearLayout>
java类代码:
1 package com.hanqi.testapp2; 2 3 import android.app.AlertDialog; 4 import android.content.DialogInterface; 5 import android.support.v7.app.AppCompatActivity; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.widget.Toast; 9 10 public class TestActivity5 extends AppCompatActivity { 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_test5); 16 } 17 //一般对话框 18 public void bt1_onClick(View v) 19 { 20 //对话框不能直接实例化 21 //内部提供了构造器 22 //方法链调用 23 AlertDialog alertDialog = new AlertDialog.Builder(this) 24 .setTitle("确认对话框") 25 .setMessage("确实要删除么") 26 .setPositiveButton("确认", new DialogInterface.OnClickListener() { 27 @Override 28 public void onClick(DialogInterface dialog, int which) { 29 Toast.makeText(TestActivity5.this, "执行删除,which = " + which, Toast.LENGTH_SHORT).show(); 30 } 31 })//正面按钮 32 .setNegativeButton("取消", new DialogInterface.OnClickListener() { 33 @Override 34 public void onClick(DialogInterface dialog, int which) { 35 Toast.makeText(TestActivity5.this, "取消删除,which = " + which, Toast.LENGTH_SHORT).show(); 36 } 37 }) 38 .setNeutralButton("中立", new DialogInterface.OnClickListener() { 39 @Override 40 public void onClick(DialogInterface dialog, int which) { 41 Toast.makeText(TestActivity5.this, "按钮,which = " + which, Toast.LENGTH_SHORT).show(); 42 } 43 }).setCancelable(false) 44 .show();//显示对话框 45 } 46 //单选对话框 47 public void bt2_onClick(View v) 48 { 49 //final可以让常量的生命周期延长到整个实例 50 final String [] str = {"男","女"}; 51 new AlertDialog.Builder(this) 52 .setTitle("单选对话框") 53 .setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() { 54 @Override 55 public void onClick(DialogInterface dialog, int which) { 56 Toast.makeText(TestActivity5.this, "which = "+which+ 57 ",选中的是"+str[which], Toast.LENGTH_SHORT).show(); 58 //关闭对话框 59 dialog.dismiss(); 60 } 61 }).setCancelable(false) 62 .show(); 63 } 64 //复选对话框 65 public void bt3_onClick(View v) 66 { 67 final String [] str = {"宝马","奔驰","劳斯莱斯","宾利"}; 68 final boolean[] ch = {true,false,false,true}; 69 new AlertDialog.Builder(this) 70 .setTitle("复选对话框") 71 .setMultiChoiceItems(str, ch, new DialogInterface.OnMultiChoiceClickListener() { 72 @Override 73 public void onClick(DialogInterface dialog, int which, boolean isChecked) { 74 //改变对应数组项的选中状态 75 ch[which] = isChecked; 76 } 77 }) 78 .setPositiveButton("确认", new DialogInterface.OnClickListener() { 79 @Override 80 public void onClick(DialogInterface dialog, int which) { 81 int i = 0; 82 //获取最终的选中状态 83 for (boolean b:ch) 84 { 85 Toast.makeText(TestActivity5.this, str[i]+"选中状态 = "+ 86 (b?"选中":"未选中"), Toast.LENGTH_SHORT).show(); 87 i++; 88 } 89 } 90 }) 91 .setNegativeButton("取消", null) 92 .setCancelable(false) 93 .show(); 94 } 95 }
效果图:
标签:
原文地址:http://www.cnblogs.com/hanazawalove/p/5486168.html