AlertDialog提示框的使用

来源:互联网 发布:程序员述职报告范文 编辑:程序博客网 时间:2024/06/05 03:29

AlertDialog 用于弹出提示框,本身并没有构造函,不可以通过构造函数来初始化,首先需要通过AlertDialog.Builder来创建一个Buider,然后有两种方法来完成一个AlertDialog:一种方法是使用Builder对象中的方法定义AlertDialog的属性,然后再使用show()方法来创建并显示AlertDialog提示框;另一种方法是先使用create方法获得AlertDialog对象,然后使用AlertDialog对象的方法定义AlertDialog属性,最后使用show()方法显示AlertDialog提示框。

      AlertDialog.builder构造函数有两种:

1.AlertDialog.builder(Content content);

2.AlertDialog.builder(Content content,int theme)

    AlertDialog的主要方法及用途介绍如下。

1.void dismiss():将对话框从屏幕中移除

2.void setButton(int whichButton,CharSequece text, DialogInterface.OnClickListener):设置对话框的按钮

3.void setView(View view ):将视图控件显示在对话框中

4.void setMessage(CharSequence message):设置对话框的显示内容

5.setTitle(CharSequence title):为对话框设置标题

6.void setIcon(Drawable icon)和void seticon(int resId):为对话框设置图标

7.AlertDialog.Builder setMultiChoiceItems(items, checkedItems, listener):在对话框中显示多选框

8.AlertDialog.Builder setSingleChoiceItems(CharSequence[] items,int checkedItem,DialogInterface.OnclickListener):在对话框中显示单选框

9.AlertDialog.Builder setItems(CharSequence[]items,Dialoginterface.OnClickListener listener):在对话框中显示列表


下面是利用AlertDialog创建的7种不同风格的对话框,希望对初学android的朋友起到一定的帮助作用:

(1)布局文件main.xml如下


<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <TextView         android:id="@+id/textvie1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Textview"/>    <Button        android:id="@+id/button1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="两个按钮"/>    <Button        android:id="@+id/button2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="三个按钮"/>    <Button        android:id="@+id/button3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="显示视图"/>    <Button        android:id="@+id/button4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="多选列表"/>    <Button        android:id="@+id/button5"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="单选列表"/>    <Button        android:id="@+id/button6"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="列表数据"/>    <Button        android:id="@+id/button7"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="自定义视图"/></LinearLayout>




(2)程序代码如下

package com.example.alertdialog;import com.example.alertdialog.R.layout;import android.R.anim;import android.R.raw;import android.app.Activity;import android.app.ActionBar;import android.app.AlertDialog;import android.app.Fragment;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.os.Build;public class AlertDialogDemo extends Activity {private AlertDialog dialog;private AlertDialog.Builder builder;private TextView tView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);tView=(TextView)this.findViewById(R.id.textvie1);Button button1=(Button)this.findViewById(R.id.button1);Button button2=(Button)this.findViewById(R.id.button2);Button button3=(Button)this.findViewById(R.id.button3);Button button4=(Button)this.findViewById(R.id.button4);Button button5=(Button)this.findViewById(R.id.button5);Button button6=(Button)this.findViewById(R.id.button6);Button button7=(Button)this.findViewById(R.id.button7);View.OnClickListener listener=new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.button1:dialog1();break;case R.id.button2:dialog2();break;case R.id.button3:dialog3();break;case R.id.button4:dialog4();break;case R.id.button5:dialog5();break;case R.id.button6:dialog6();break;case R.id.button7:dialog7();break;}}};button1.setOnClickListener(listener);button2.setOnClickListener(listener);button3.setOnClickListener(listener);button4.setOnClickListener(listener);button5.setOnClickListener(listener);button6.setOnClickListener(listener);button7.setOnClickListener(listener);}public void dialog1(){dialog=new AlertDialog.Builder(this).create();dialog.setTitle("提示");dialog.setMessage("确定退出吗?");dialog.setIcon(android.R.drawable.ic_dialog_alert);//创建监听器DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubif (which==DialogInterface.BUTTON_POSITIVE) {//按下确定dialog.dismiss();AlertDialogDemo.this.finish();} else if(which==DialogInterface.BUTTON_NEGATIVE){//按下取消dialog.dismiss();}}};dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", listener);dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", listener);dialog.show();}public void dialog2(){dialog=new AlertDialog.Builder(this).create();dialog.setTitle("调查");dialog.setMessage("你平时忙吗?");dialog.setIcon(android.R.drawable.ic_dialog_info);//设置对话框的图标为ic_dialog_alert//创建按键监听器DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubString str="";switch (which) {case DialogInterface.BUTTON_POSITIVE:str="平时很忙";break;case DialogInterface.BUTTON_NEUTRAL:str="平时一般";break;case DialogInterface.BUTTON_NEGATIVE:str="平时轻松";break;}tView.setText(str);}};dialog.setButton(DialogInterface.BUTTON_POSITIVE, "忙碌", listener);dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "一般", listener);dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "不忙", listener);dialog.show();}public void dialog3(){dialog=new AlertDialog.Builder(this).create();dialog.setTitle("请输入");dialog.setMessage("你平时忙吗?");dialog.setIcon(android.R.drawable.ic_dialog_info);final EditText tEdit=new EditText(this);dialog.setView(tEdit);//创建按键监听器DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtView.setText("输入的是:"+tEdit.getText().toString());//将输入的内容转化为字符串}};dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", listener);dialog.show();}public void dialog4(){final String item[]=new String[]{"北京","上海","广州"};final boolean bSelect[]=new boolean[item.length];//创建按键监听器DialogInterface.OnMultiChoiceClickListener mListener=new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {// 用一个数组记录下选择的所有选项bSelect[which]=isChecked;}};builder=new AlertDialog.Builder(this);builder.setMultiChoiceItems(item, null, mListener);dialog=builder.create();dialog.setTitle("复选框");DialogInterface.OnClickListener listener =new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubString str="你选择了:";for (int i = 0; i < bSelect.length; i++) {if( bSelect[i]){str=str+"\n"+item[i];}}tView.setText(str);}};dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", listener);dialog.show();}public void dialog5(){final String item[]=new String[]{"北京","上海","广州"};final boolean bSelect[]=new boolean[item.length];//创建按键监听器DialogInterface.OnClickListener sListener=new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 用一个数组记录下选择的所有选项bSelect[which]=true;}};builder=new AlertDialog.Builder(this);builder.setSingleChoiceItems(item, -1, sListener);//在对话框中显示单选框,checkedItem=-1表示没有被选中的dialog=builder.create();dialog.setTitle("单选框");DialogInterface.OnClickListener listener =new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubString str="你选择了:";for (int i = 0; i < bSelect.length; i++) {if( bSelect[i]){str=str+"\n"+item[i];}}tView.setText(str);}};dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", listener);dialog.show();}public void dialog6(){final String item[]=new String[]{"北京","上海","广州"};final boolean bSelect[]=new boolean[item.length];//创建按键监听器DialogInterface.OnClickListener sListener=new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// 用一个数组记录下选择的所有选项String str="你选择了:"+item[which];tView.setText(str);}};builder=new AlertDialog.Builder(this);builder.setItems(item,sListener);dialog=builder.create();dialog.setTitle("列表框");DialogInterface.OnClickListener listener =new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubdialog.dismiss();}};dialog.setButton(DialogInterface.BUTTON_POSITIVE,"取消", listener);dialog.show();}public void dialog7(){LayoutInflater inflater=getLayoutInflater();View Layout=inflater.inflate(R.layout.dialog, null);final EditText tEdit=(EditText)latout.findViewById(R.id.editText1);dialog=new AlertDialog.Builder(this).create();dialog.setTitle("自定义布局");dialog.setView(Layout);DialogInterface.OnClickListener listener=new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubtView.setText("输入的是:"+tEdit.getText().toString());}};dialog.setButton(DialogInterface.BUTTON_POSITIVE,"确定", listener);dialog.setButton(DialogInterface.BUTTON_NEGATIVE,"取消", listener);dialog.show();}}

0 0
原创粉丝点击