是的,我知道有一个对话.但我很震惊地知道在Android中显示对话框有多困难(至少对程序员不友好).

我曾经是一名.NET开发人员,我想知道有没有与以下Android相当的工具?

if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
    // Do something...
}

推荐答案

alert 对话框.Builder真的没那么难用.一开始肯定有点吓人,但一旦你用了一点,它就简单而强大了.我知道你说过你知道如何使用它,但这里只是一个简单的例子:

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        switch (which){
        case DialogInterface.BUTTON_POSITIVE:
            //Yes button clicked
            break;

        case DialogInterface.BUTTON_NEGATIVE:
            //No button clicked
            break;
        }
    }
};

AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
    .setNegativeButton("No", dialogClickListener).show();

如果你有另外yes/no个盒子可以做同样的事情,你也可以重复使用这DialogInterface.OnClickListener个盒子.

如果是从View.OnClickListener以内创建对话框,可以使用view.getContext()获取上下文.或者你可以使用yourFragmentName.getActivity().

Android相关问答推荐

如何使禁用状态下的material 3按钮与启用状态下的 colored颜色 相同?

Jetpack编写Lazy列滑动删除动画不顺利结束

使用Retrofit2的API调用:我如何能够一直进行API调用,以更新数据而无需重新打开应用程序

如何在Jetpack导航中不显示目的地?

保护所有程序包文件和类

Jetpack Compose中尺寸不断增加的动画

如何在使用带有底部导航组件的片段管理器时更改片段工具栏的标签

警告:应用必须面向 Android 13(API 级别 33)或更高版本.确实如此

块不起作用,出现 "只有安全的 (?.)... " 错误

将 React Native 应用程序背景带到前台

如何删除 Jetpack Compose 中按钮的左边框?

通知使用默认语言,屏幕显示多种语言,同时通过 AppCompatDelegate 设置应用程序语言

AttributionSource 需要 android.permission.BLUETOOTH_SCAN 权限的问题

Android Transitions API - 在 24-48 小时后停止接收任何更新

viewModel 的可变值状态不起作用

无法通过 retrofit 解析对 kotlin 数据类的 xml 响应

协程中的 Job.Cancel 与 Scope.Cancel 有什么区别?

使用 Room 在 SQLite 中保存复杂的 JSON 响应

预览必须是顶级声明或具有默认构造函数的顶级类

如何获取 Android Preferences DataStore 的所有键