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();
}