Android-Dialogs(一) AlterDialog基本使用

本文深入探讨Android中的DialogFragment,讲解如何创建简单的DialogFragment,构建AlertDialog,包括添加按钮、列表以及自定义布局。建议使用DialogFragment作为对话框容器,以方便管理和设计各种对话效果。同时,文章介绍了如何将事件传递回Dialog's Host,以及如何解除对话框。
摘要由CSDN通过智能技术生成

Dialog类是所有对话框的基类,不应该实例化Dialog而是采用如下子类进行实例化:

  • AlertDialog: 可以显示标题、最多三个按钮、可选项列表或者自定义布局
  • DatePickerDialog和**TimePickerDialog:**这是预定义的对话框可以选择日期或者时间
  • ProgressDialog:带有进度条的对话框,但是不推荐使用,它会阻止用户与应用程序进行交互。

谷歌官方推荐使用DialogFragment作为对话框的容器,DialogFragment类提供了创建对话框和管理器外观所需的所有控件

创建一个简单的DialogFragment

可以继承DialogFragment并重写onCreateDialog(),在回调方法中创建AlertDialog来完成各种对话框设计-包括自定义布局。

例如:

public class FireMissilesDialogFragment extends DialogFragment {
   
    @NonNull
    @Override
    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
   
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage("Fire missiles?")
                .setPositiveButton("FIRE", new DialogInterface.OnClickListener() {
   
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
   
                        // todo...
                    }
                })
                .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
   
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
   
                        // todo...
                    }
                });
        // 创建并返回AlertDialog实例
        return builder.create();
    }
}

使用FireMissilesDialogFragment

FireMissilesDialogFragment fireMissilesDialogFragment = new FireMissilesDialogFragment();
        fireMissilesDialogFragment.show(getSupportFragmentManager(),"dialog");

e0dd26e7030a098ade1dd69062149aab.png

Tips:第二个参数“dialog”是一个唯一的标记名称,系统在必要时可以用它来保存和回复片段状态。还可以调用findFragmentByTag来获取片段的句柄。

构建AlertDialog

使用AlertDialog类可以构建设计各种dialog
在构建AlertDialog时谷歌官方推荐使用AlertDialog.Builder,它可以创建包括自定义对话框在内的各种内容的Dialogs

AlerDialog.Builder builder = new AlertDialog.Builder(getActivity());
// 通过链式调用各种setter方法完成Dialog的设置
builder.setMessage("Message")
      .setTitle("Tittle");
AlterDialog dialog = builder.create();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值