关于AlertDialog的常见用法
一、创建一个一般的弹出对话框AlertDialog:
创建对话框 一个对话框一般是一个出现在当前Activity之上的一个小窗口。 处于下面的Activity失去焦点, 对话框接受所有的用户交互。对话框一般用于提示信息和与当前应用程序直接相关功能。
二、创建AlertDialog通常使用的方法使用到的方法:
setIcon();setTitle();setMessage();setView();setAdapter();setPositiveButton();setNegativeButton();setNeutralButton();setMultiChoiceItems();setSingleChoiceItems();create();show()...
三、创建AlertDialog时,多数包含的共同方法:
//创建面板,创建Buidker构建器AlertDialog.Builderbuilder=newAlertDialog.Builder(this);//绘制面板添加需要内容并进行显示builder.setTitle("普通提示").setMessage("确定退出吗?").create().show();
四、普通对话框中通常使用的控件:
1)普通对话框添加按钮(Dialog的按钮显示在安卓4.0+和5.0+中不同,5.0以后不在存在边框,默认的按钮是横排,每个按钮都有固定位置。如果不注意顺序的话,可能造成文字没有间距),创建步骤:
1.创建AlertDialog.Builder对象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通过builder设置普通对话框。
例:builder=builder.setTitle().setMessage().setPositiveButton().setNegativeButton().setNe utralButton();
3.将设置好的builder通过使用create()方法转换成为AlerDialog对象
例:AlerDialog alertdialog = builder.create();
4.调用show()方法显示。
例:alertdialog.show();
importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.DialogInterface.OnClickListener;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.View;/***根据要求设置布局res/layout/xx.xml文件**为xx.xml文件中的控件添加点击事件,空间的点击事件引发的动作是普通弹出对话框。*弹出对话框通常最多设置三个按钮(弹出对话框中按钮顺序为1,3,2),分别使用方法setPositiveButton(name,onclick).setNegativeButton(name,onclick).setNeutralButton(name,onclick).create.show();*其中参数name:弹出对话框中的按钮名称;onclick:弹出对话框中对应按钮的点击事件。**创建对话框的步骤*1.创建Builder构建器AlertDialog.Builderbuilder*2.给Builder构建器去setXXX内容*3.如果setXXX内容设置完毕,将Builder构建器通过create()方法转成AlertDialog;*4.让转换后的builder,调用AlertDialog的show()方法将对话框进行显示。**@authorAdministrator**/publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}publicvoidshowClick(Viewview){//创建面板,创建Buidker构建器AlertDialog.Builderbuilder=newAlertDialog.Builder(this);//绘制面板添加需要内容builder=builder.setTitle("普通提示").setMessage("确定退出吗?").setIcon(R.drawable.ic_launcher);builder.setPositiveButton("确定",/***添加第一个按钮*///setPositiveButton第一参数:1.按钮上面的文字;//第二个参数:按钮上面的单击事件。newOnClickListener(){/***DialogInterfacedialog:按钮所依赖的对话框*intwhich:索引值*/@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Log.i("builder","---->"+which);dialog.dismiss();//设置对话框消失//关闭activityMainActivity.this.finish();}}).setNegativeButton("取消",newOnClickListener(){/***添加第二个按钮*/@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Log.i("builder","setNegativeButton"+which);dialog.dismiss();}}).setNeutralButton("忽略",newOnClickListener(){/***添加第三个按钮*/@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Log.i("builder","setNeutralButton"+which);}}).create().show();}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.main,menu);returntrue;}}
2)弹出对话框显示单选框和复选框,创建步骤:
1.创建AlertDialog.Builder对象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通过builder设置普通对话框。
例:builder = builder.setTitle().setMessage().setMultiChoiceItems().
setSingleChoiceItems();
在设置复选框的时候结合了按钮一起使用。
3.将设置好的builder通过使用create()方法转换成为AlerDialog对象
例:AlerDialog alertdialog = builder.create();
4.调用show()方法显示。
例:alertdialog.show();
importjava.util.ArrayList;importjava.util.List;importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.DialogInterface.OnClickListener;importandroid.content.DialogInterface.OnMultiChoiceClickListener;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.View;importandroid.widget.TextView;publicclassMainActivityextendsActivity{privateTextViewtv_show;Stringstr[]={"桌球","高尔夫","保龄球","篮球","旅游","瑜伽"};Stringgoods[]={"篮球鞋","上衣","短裤","羽绒服","T恤"};//存放多选项的集合List<String>lists=newArrayList<String>();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv_show=(TextView)findViewById(R.id.tv_show);//初始化显示文本框}//添加按钮点击响应事件publicvoidclick(Viewview){switch(view.getId()){//复选按钮单击事件caseR.id.btn1:AlertDialog.Builderbuilder2=newAlertDialog.Builder(this);builder2.setTitle("多项选择").setMultiChoiceItems(goods,newboolean[]{false,false,false,false,false},newOnMultiChoiceClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich,booleanisChecked){if(isChecked){lists.add(goods[which]);}else{lists.remove(goods[which]);}}}).setPositiveButton("提交",newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){tv_show.setText(lists.toString());dialog.dismiss();}}).setNegativeButton("取消",newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){tv_show.setText("没有选中商品");dialog.dismiss();}}).create().show();break;//单选按钮单击事件caseR.id.btn2:AlertDialog.Builderbuilder=newAlertDialog.Builder(this);builder.setTitle("请选择:").setSingleChoiceItems(str,0,newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){Log.i("builder","---->"+which);Stringchoice=str[which];tv_show.setText(choice);dialog.dismiss();}}).setIcon(R.drawable.ic_launcher).create().show();break;default:break;}}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.main,menu);returntrue;}}
3)为普通对话框中添加View控件(以EditText为例),创建步骤:
1.创建AlertDialog.Builder对象。
例如:AlertDialog.Builder builder = new AlertDialog.Builder(this);
2.通过builder设置普通对话框。
例:builder = builder.setTitle().setMessage().setView();
视图同样与按钮结合使用。
3.将设置好的builder通过使用create()方法转换成为AlerDialog对象
例:AlerDialog alertdialog = builder.create();
4.调用show()方法显示。
例:alertdialog.show();
下面的带吗是一个简单的小应用,根据名字测试靠什么吃饭,代码如下:
importandroid.app.Activity;importandroid.app.AlertDialog;importandroid.content.DialogInterface;importandroid.content.DialogInterface.OnClickListener;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.Menu;importandroid.view.View;importandroid.widget.EditText;importandroid.widget.TextView;publicclassMainActivityextendsActivity{privateTextViewtvresult;privateEditTextet;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tvresult=(TextView)findViewById(R.id.tvresult);}publicvoidclick(Viewview){AlertDialog.Builderbuilder=newAlertDialog.Builder(this);LayoutInflaterinflater=getLayoutInflater();//创建布局填充器在activity中使用;Viewview1=inflater.inflate(R.layout.item,null);et=(EditText)view1.findViewById(R.id.edit);builder.setTitle("进行测试").setView(view1).setPositiveButton("提交",newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){//获取edittext的值Stringmsg=et.getText().toString().trim();intr=msg.hashCode();Log.i("aaa",r+"");tvresult.setVisibility(View.VISIBLE);if(r%2==0){tvresult.setText(msg+"靠大脑吃饭");}elseif(r%3==0){tvresult.setText(msg+"靠脸皮吃饭");}elseif(r%5==0){tvresult.setText(msg+"靠手吃饭");}elseif(r%7==0){tvresult.setText(msg+"靠逗比吃饭");}elseif(r%11==0){tvresult.setText(msg+"靠老婆吃饭");}else{tvresult.setText(msg+"靠丐帮吃饭");}dialog.dismiss();}}).setNegativeButton("取消",newOnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){dialog.dismiss();}}).create().show();}@OverridepublicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.main,menu);returntrue;}}
五、总结:
普通对话款在Android开发中应用较为广泛,在普通对话框里面通常包含按钮,图标,主题,内容,选择列表,视图控件等。上述对普通对话框的基本介绍及用途介绍希望对大家有用。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。