AlertDialog提示对话框各种使用方法!
来源:互联网 发布:淘宝投诉盗图原始图片 编辑:程序博客网 时间:2024/05/16 09:53
AlertDialog是安卓的常见的交互方式。
AlertDialog可以简单的分为五类:一般对话框、列表对话框、单选按钮对话框、多选对话框、自定义对话框。
1.首先在布局中把所有的按钮都写好。
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.alertdialogtest.MainActivity"> <Button android:text="一般对话框" android:textSize="20sp" android:onClick="normalDialog" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="列表对话框" android:textSize="20sp" android:onClick="listDialog" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="单选对话框" android:textSize="20sp" android:onClick="singleDialog" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="多选对话框" android:onClick="mulDialog" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:text="自定义对话框" android:onClick="customDialog" android:textSize="20sp" android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>2.1普通对话框
public void normalDialog(View view){ //得到构造器 AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("提示"); builder.setMessage("是否确认退出?"); builder.setIcon(R.mipmap.ic_launcher); builder.setCancelable(false); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss();; } }); builder.setNeutralButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.setNegativeButton("忽略", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); Dialog dialog=builder.create(); dialog.show(); }
如图所示:
首先构造一个AlertDialog.Builder,通过Builder可以设置标题、内容、图标和是否可取消,默认可以设置最多三个按钮,分别制定点击事件。
setPositiveButton():设置积极得到按钮,推荐设置确定之类的。
setNegativeButton():设置消极按钮,推荐设置取消之类的。
setNeutralButton():设置中立按钮,推荐设置忽略之类的。
注意:创建Builder需要传递Context(上下文)类型的参数,该参数只能传递Activity,不能传递其他类型的上下文(包括getApplicationContext()),否则程序直接报错。
2.2列表对话框
public void listDialog(View view){ final String items[]={"C罗","贝尔","本泽马"}; AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("提示"); builder.setIcon(R.mipmap.ic_launcher); builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }2.3单选按钮对话框
public void mulDialog (View view){ final String items[]={"篮球","排球","足球"}; AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("爱好"); final boolean selected[]={false,false,true}; builder.setIcon(R.mipmap.ic_launcher); builder.setMultiChoiceItems(items , selected, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { Toast.makeText(MainActivity.this, items[which]+isChecked, Toast.LENGTH_SHORT).show(); }}); builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); for ( int i=0;i<selected.length;i++){ Log.i("mulDialog", "onClick: "+selected[i]); } } }); builder.create().show(); }
2.5自定义对话框
首先自定义布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"><EditText android:layout_width="match_parent" android:id="@+id/edit_name" android:ems="10" android:gravity="center" android:layout_gravity="center" android:hint="输入用户名" android:inputType="textPersonName" android:layout_height="wrap_content"/> <EditText android:layout_width="match_parent" android:id="@+id/edit_password" android:ems="10" android:gravity="center" android:layout_gravity="center" android:hint="输入密码" android:inputType="textPassword" android:layout_height="wrap_content"/> <Button android:id="@+id/btn_login" android:text="Login" android:layout_width="match_parent" android:layout_height="wrap_content"/></LinearLayout>
java代码:
public void customDialog(View view){ AlertDialog.Builder builder=new AlertDialog.Builder(this); builder.setTitle("自定义Dialog"); builder.setIcon(R.mipmap.ic_launcher); LayoutInflater lay=getLayoutInflater(); View layout= lay.inflate(R.layout.dialog_custom,null); builder.setView(layout); EditText name= (EditText) findViewById(R.id.edit_name); EditText password = (EditText) findViewById(R.id.edit_password); builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); }}
运行如图所示:
阅读全文
0 0
- AlertDialog提示对话框各种使用方法!
- android 各种对话框 AlertDialog
- AlertDialog(提示对话框)
- Android对话框AlertDialog.Builder使用方法
- android 提示对话框显示 AlertDialog
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android: 详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- Android详细的对话框AlertDialog.Builder使用方法
- apche配置
- openoffice 就是垃圾!
- Java线程池ExecutorService
- stl.list正确erase方法
- C语言编译、链接过程
- AlertDialog提示对话框各种使用方法!
- Android 实现屏幕底部弹出Dialog
- 日文键盘的符号位置
- 插件化入门篇-如何启动一个未注册过的Activity
- Python Ctypes 多级指针 传参数 和返回值
- AFNetWorking 请求返回NSData类型数据解决方案--iOS开发
- Git学习网站
- MySQL数据库优化的八种方式(经典必看)
- GreenDao3.0使用详解