📅  最后修改于: 2023-12-03 15:31:22.922000             🧑  作者: Mango
在 Android App 开发过程中,弹框是常用的交互方式。Android 中提供了 AlertDialog 类,用于创建弹框并展示在屏幕上。
在导入 AlertDialog 类之前,需要先导入相应的依赖包,在这里我们使用的是 android.support.v7.app.AlertDialog
,由于 androidx 的出现,建议使用 androidx.appcompat.app.AlertDialog
。在代码中只需要加入以下依赖包即可:
import androidx.appcompat.app.AlertDialog;
创建 AlertDialog 有两种方式:
AlertDialog.Builder 类封装了用于创建 AlertDialog 的方法,并提供额外的属性用于设置弹框的样式。AlertDialog.Builder 可以通过以下代码创建:
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Title");
builder.setMessage("Message");
builder.setCancelable(false);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// 处理点击确认之后的逻辑
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
// 处理点击取消之后的逻辑
}
});
AlertDialog dialog = builder.create();
dialog.show();
这样就创建成功了一个最基本的 AlertDialog 弹框,它包含了一个标题 ("Title")、一个消息 ("Message")、两个按钮 ("确认" 和 "取消")。如果消息过长,可以使用 builder.setMessage(Html.fromHtml("Message"))
来支持富文本的编辑,以及 builder.setIcon(R.drawable.ic_launcher)
来添加一个图标。还可以通过 builder.setView(View) 方法来添加自定义的 View。
使用直接创建 AlertDialog 的方式,需要先创建一个 AlertDialog 对象,然后通过调用 setTitle()、setMessage()、setButton() 等方法对弹框进行设置。具体实现代码如下:
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Title");
alertDialog.setMessage("Message");
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理点击确认之后的逻辑
}
});
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 处理点击取消之后的逻辑
}
});
alertDialog.setCancelable(false);
alertDialog.show();
AlertDialog 提供了很多接口用于设置弹框的样式,例如:
setTitle(CharSequence title)
:设置标题setMessage(CharSequence message)
:设置消息setView(View view)
:设置弹框的 ViewsetIcon(int resId)
:设置弹框的图标setCancelable(boolean cancelable)
:设置弹框是否可以通过点击外部来关闭(默认为 true)setPositiveButton(CharSequence text, DialogInterface.OnClickListener listener)
:设置弹框的确认按钮的文本和点击事件setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener)
:设置弹框的取消按钮的文本和点击事件setNeutralButton(CharSequence text, DialogInterface.OnClickListener listener)
:设置弹框的中立按钮的文本和点击事件在 Android 中使用 AlertDialog 创建弹框,只需要导入相关依赖包和使用 AlertDialog.Builder 或直接创建 AlertDialog 两种方式之一即可。在创建时可以选择样式,例如设置标题、消息、按钮等,并可以设置弹框是否可以被取消。弹框可以实现一些消息提示、询问确认等功能。