1.消息对话框;
一般步骤:
1)创建AlertDialog.Builder对象;
2)设置图标、标题、内容、按钮等区域;
3)调用creat()方法创建;
4)调用show()方法显示对话框。
方法名称 | 说明 |
setIcon() | 设置图标 |
setTitle() | 设置标题 |
setMessage() | 设置文本内容 |
setItems() | 设置列表项 |
setSingleChoiceItems() | 设置单选列表项 |
setMultiChoiceItems() | 设置多选列表项 |
setView() | 设置自定义View |
setPositiveButton() | 设置按钮,一般作为“确认”按钮 |
setNegativeButton() | 设置按钮,一般作为“取消”按钮 |
代码例:(在这里放到了listview中的item长按事件中 是一个普通的提示消息框)
@Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //Toast.makeText(this, "长时间点击" + position, Toast.LENGTH_SHORT).show(); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setMessage("点击确定"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show(); return true; }选择对话框示例代码:
@Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //Toast.makeText(this, "长时间点击" + position, Toast.LENGTH_SHORT).show(); //简单的消息对话框 /*AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setMessage("点击确定或者取消"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show();*/ //选择对话框 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setNegativeButton("取消", null); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); finish(); } }); builder.create().show(); return true; }列表对话框示例代码:
@Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //Toast.makeText(this, "长时间点击" + position, Toast.LENGTH_SHORT).show(); //简单的消息对话框 /*AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setMessage("点击确定或者取消"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show();*/ //选择对话框 /* AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setNegativeButton("取消", null); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); finish(); } }); builder.create().show();*/ //列表选择对话框 final String[] arr = {"z", "ke", "m"}; //注意:要声明为final类型的否则在下面的onClick方法中是调用不到arr数组的 作用域不够。 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setItems(arr, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "您选择:" + arr[which], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); //finish(); } }); builder.create().show(); return true; }单选对话框实例代码:
int selectid = -1; @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //Toast.makeText(this, "长时间点击" + position, Toast.LENGTH_SHORT).show(); //简单的消息对话框 /*AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setMessage("点击确定或者取消"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show();*/ //选择对话框 /* AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setNegativeButton("取消", null); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); finish(); } }); builder.create().show();*/ //列表选择对话框 /*final String[] arr = {"张", "ke", "明"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setItems(arr, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "您选择:" + arr[which], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); //finish(); } }); builder.create().show();*/ //单选对话框 final String[] arr = {"张", "ke", "明"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setSingleChoiceItems(arr, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { selectid = which; //变量selectid 是在item长按事件外部定义的。 Toast.makeText(MainActivity.this, "选择了:" + arr[which], Toast.LENGTH_SHORT).show(); //dialog.dismiss(); //如果想点击单选后直接关闭对话框就调用这个方法。 } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); //finish(); Toast.makeText(MainActivity.this, "最后的选择:" + arr[selectid], Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", null); builder.create().show(); return true; }多选按钮实例代码:
int selectid = -1; ArrayList<Integer> choice = new ArrayList<Integer>(); @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //Toast.makeText(this, "长时间点击" + position, Toast.LENGTH_SHORT).show(); //简单的消息对话框 /*AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setMessage("点击确定或者取消"); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); } }); builder.create().show();*/ //选择对话框 /* AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setNegativeButton("取消", null); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); finish(); } }); builder.create().show();*/ //列表选择对话框 /*final String[] arr = {"z", "ke", "m" AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setItems(arr, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, "您选择:" + arr[which], Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); //finish(); } }); builder.create().show();*/ /*//单选对话框 final String[] arr = {"z", "ke", "m"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setSingleChoiceItems(arr, 0, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { selectid = which; Toast.makeText(MainActivity.this, "选择了:" + arr[which], Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); //finish(); Toast.makeText(MainActivity.this, "最后的选择:" + arr[selectid], Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", null); builder.create().show();*/ //多选对话框 choice.clear(); //必须加这个 要不会报异常 或者第二次打开的时候choice链没有清空。 final String[] arr = {"z", "ke", "m"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.drawable.ic_launcher); builder.setTitle("消息提示信息"); builder.setMultiChoiceItems(arr, new boolean[]{false, false, false}, new DialogInterface.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { if(isChecked){ choice.add(which); //同样choice是在点击事件外部定义的。 }else{ choice.remove(which); } Toast.makeText(MainActivity.this, "选择:" + choice.toString(), Toast.LENGTH_SHORT).show(); } }); builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { //Toast.makeText(MainActivity.this, "点击了确定", Toast.LENGTH_SHORT).show(); //finish(); Toast.makeText(MainActivity.this, "最后的选择:" + choice.toString(), Toast.LENGTH_SHORT).show(); } }); builder.setNegativeButton("取消", null); builder.create().show(); return true; }
在点击返回按钮的时候可以给出一个提示这个对话框:
示例代码:(代码在activity中的oncreat方法中)
@Override public void onBackPressed() { //super.onBackPressed(); new AlertDialog.Builder(this) .setIcon(R.drawable.ic_launcher) .setTitle("确认对话框") .setMessage("您真的要退出程序么?") .setNegativeButton("取消", null) .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }).show(); }