AlertDialog提示对话框练习

闲来无事,就练习了下AlertDialog对话框。

首先写了三个button,分别打开一般对话框,单选列表对话框和复选对话框。

xml代码

 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     tools:context=".MainActivity" 
 6     android:orientation="vertical">
 7 
 8     <Button
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:text="提示对话框" 
12         android:onClick="listener1"/>
13 
14     <Button
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:text="单选对话框" 
18         android:onClick="listener2"/>
19      <Button
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:text="复选对话框" 
23         android:onClick="listener3"/>
24 </LinearLayout>

java代码:

  1 package com.dj.alertdialogtest;
  2 
  3 import android.os.Bundle;
  4 import android.app.Activity;
  5 import android.app.AlertDialog;
  6 import android.app.AlertDialog.Builder;
  7 import android.app.Dialog;
  8 import android.content.DialogInterface;
  9 import android.view.Menu;
 10 import android.view.View;
 11 import android.widget.Button;
 12 import android.widget.Toast;
 13 
 14 public class MainActivity extends Activity {
 15      AlertDialog.Builder dialog=null;
 16     private int num;
 17     
 18     @Override
 19     protected void onCreate(Bundle savedInstanceState) {
 20         super.onCreate(savedInstanceState);
 21         setContentView(R.layout.activity_main);
 22     }
 23     
 24     
 25     /**显示对话框*/
 26     public void listener1(View v){
 27         dialog=new AlertDialog.Builder(MainActivity.this);//初始化显示对话框
 28         dialog.setIcon(R.drawable.ic_launcher);//设置对话框的图标
 29         dialog.setTitle("调查");//设置对话框的标题
 30         dialog.setMessage("假如给你一百万你想做什么?");//设置对话框的内容信息
 31         
 32         /**设置对话的三个button按钮*/
 33         dialog.setPositiveButton("捐款",new DialogInterface.OnClickListener() {            
 34             @Override
 35             public void onClick(DialogInterface dialog, int which) {
 36                 Toast.makeText(getApplicationContext(), "我要做有意思的事!", Toast.LENGTH_LONG).show();
 37             }
 38         });
 39         dialog.setNegativeButton("旅游", new DialogInterface.OnClickListener() {
 40             
 41             @Override
 42             public void onClick(DialogInterface dialog, int which) {
 43                 Toast.makeText(getApplicationContext(), "我要好好活!", Toast.LENGTH_LONG).show();
 44             }
 45         });
 46     
 47         dialog.setNeutralButton("坐吃等死", new DialogInterface.OnClickListener() {
 48             
 49             @Override
 50             public void onClick(DialogInterface dialog, int which) {
 51                 Toast.makeText(getApplicationContext(), "我要坐吃等死!", Toast.LENGTH_LONG).show();
 52             }
 53         });
 54         dialog.create();//创建
 55         dialog.show();//将设置完的对话框显示出来
 56     }
 57     
 58     
 59     
 60     /**以下是单选列表对话框*/
 61     public void listener2(View v){
 62         AlertDialog.Builder dialog=new AlertDialog.Builder(this);
 63         final String[] str={"鱼香肉丝","宫保鸡丁","回锅肉","东坡肉"};//设置列表的元素
 64         dialog.setIcon(R.drawable.ic_launcher);//设置图标
 65         dialog.setTitle("选择你喜欢的食物");//设置标题
 66         /**设置单选列表对话框。第一个参数为列表元素,以字符串数组承装;
 67          * 第二个参数是默认选中的元素,0表示第一个*/
 68         dialog.setSingleChoiceItems(str, 0, new DialogInterface.OnClickListener() {
 69             @Override
 70             public void onClick(DialogInterface dialog, int which) {
 71                 num=which;//which表示哪个下标被选中
 72             }
 73         });
 74         dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
 75             @Override
 76             public void onClick(DialogInterface dialog, int which) {
 77                 String temp="你喜欢的食物是:";
 78                 //str[num]表示选中的是哪个食物
 79                 Toast.makeText(getApplicationContext(), temp+str[num], Toast.LENGTH_LONG).show();
 80             }
 81         });
 82         dialog.create();
 83         dialog.show();
 84     }
 85     
 86     
 87     /**复选列表对话框*/
 88     public void listener3(View v){
 89         AlertDialog.Builder dialog=new AlertDialog.Builder(this);
 90         final String[] str={"王力宏","周杰伦","王菲","那英"};
 91         final boolean[] flags={true,false,true,false};
 92         dialog.setIcon(R.drawable.ic_launcher);//设置图标
 93         dialog.setTitle("你喜欢的歌手是");
 94         dialog.setMultiChoiceItems(str, flags, new DialogInterface.OnMultiChoiceClickListener() {
 95             
 96             @Override
 97             public void onClick(DialogInterface arg0, int which, boolean isChecked) {
 98                 flags[which]=isChecked;//哪一项被选中
 99             }
100         });
101         dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() {
102             
103             @Override
104             public void onClick(DialogInterface dialog, int which) {
105                 String temp="你喜欢的歌手是:";
106                 for (int i = 0; i < flags.length; i++) {
107                     if(flags[i]){
108                         temp+=str[i];
109                     }
110                 }            
111                 Toast.makeText(getApplicationContext(), temp, Toast.LENGTH_LONG).show();
112             }
113         });
114         dialog.create();
115         dialog.show();
116     }
117     @Override
118     public boolean onCreateOptionsMenu(Menu menu) {
119         // Inflate the menu; this adds items to the action bar if it is present.
120         getMenuInflater().inflate(R.menu.main, menu);
121         return true;
122     }
123 
124 }

演示效果:

posted @ 2013-10-15 22:47  用户没有名  阅读(270)  评论(0编辑  收藏  举报