Android弹出对话框的使用
我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继承等方式,重写我们自己的对话框。当然,这也是不失为一个不错的解决方式,但是一般的情况却是这样,我们重写的对话框,也许只在一个特定的地方会用到,为了这一次的使用,而去创建一个新类,往往有点杀鸡用牛刀的感觉,甚至会对我们的程序增加不必要的复杂性,对于这种情形的对话框有没有更优雅的解决方案呢?
幸运的是,android提供了这种问题的解决方案,刚开始接触android的时候,我在做一个自定义对话框的时候,也是通过继承的方式来实现,后来随着对文档了解的深入,发现了android起始已经提供了相应的接口Dialog Builder ,不需要再去写xml布局:
只需要一个上下文对象,我们就可以很快创建对话框:
最简单的,只设置了标题:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .show();
设置内容,按钮
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", null) .setMessage("对话框内容") .show();
设置两个按钮:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", null) .setNegativeButton("取消",null ) .setMessage("对话框内容") .show();
当然,按钮的事件需要响应的话,第二个参数就不为null,需要添加响应的代码:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "确定按钮按下", Toast.LENGTH_SHORT).show(); } }) .setNegativeButton("取消",null ) .setMessage("对话框内容") .show();
这样就可以响应按钮事件了。
还有很多可以设置的属性:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", null) .setMessage("对话框内容") .setView(new EditText(MainActivity.this)) .setIcon(R.drawable.ic_launcher) //设置icon .show();
单选框:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", null) .setSingleChoiceItems(new String[]{"选项1","选项2","选项3","选项4"}, 2, null) .setIcon(R.drawable.ic_launcher) //设置icon .show();
复选框:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", null) .setMultiChoiceItems(new String[]{"选项1","选项2","选项3","选项4"}, new boolean[]{true,false,true,false}, null) .setIcon(R.drawable.ic_launcher) //设置icon .show();
列表框:
new AlertDialog.Builder(this) .setTitle("Hello MessageBox!") .setPositiveButton("确定", null) .setItems(new String[]{"选项1","选项2","选项3","选项4"}, null) .setIcon(R.drawable.ic_launcher) //设置icon .show();
相关推荐
Nostalgiachild 2020-11-13
韩伟佳 2020-10-09
wuleihenbang 2020-09-16
zzqLivecn 2020-07-09
chenjinlong 2020-06-10
yinbaoshiguang 2020-06-09
sgafdsg 2020-06-04
ustcrding 2020-06-03
chenjinlong 2020-06-03
AndroidGA 2020-06-01
安辉 2020-05-27
绿豆饼 2020-05-26
CNETNews 2020-05-26
xilove0 2020-05-12
绿豆饼 2020-05-12
ChainDestiny 2020-05-07
doomvsjing 2020-05-07
hqulyc 2020-05-05
lyccsu 2020-04-30