首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

调用alert.Dispose()时AlertDialog不会消失(Xamarin.Android)

问题描述:

调用alert.Dispose()时AlertDialog不会消失(Xamarin.Android)

回答:

在Xamarin.Android中,当调用alert.Dispose()时,AlertDialog不会立即消失的原因是因为Dispose()方法只是释放了AlertDialog对象所占用的资源,并没有直接关闭对话框。

要使AlertDialog消失,可以使用以下方法之一:

  1. 调用alert.Dismiss()方法: alert.Dismiss()方法会立即关闭AlertDialog对话框,并释放相关资源。可以在调用alert.Dispose()之前先调用alert.Dismiss()方法,确保对话框被关闭。
  2. 使用alert.Cancel()方法: alert.Cancel()方法会触发AlertDialog的取消事件,关闭对话框并执行相应的取消操作。可以在调用alert.Dispose()之前先调用alert.Cancel()方法,确保对话框被关闭。

以下是示例代码:

代码语言:csharp
复制
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.SetTitle("提示");
builder.SetMessage("确定要关闭对话框吗?");
builder.SetPositiveButton("确定", (sender, args) =>
{
    // 确定按钮点击事件处理逻辑
});
builder.SetNegativeButton("取消", (sender, args) =>
{
    // 取消按钮点击事件处理逻辑
});

AlertDialog alert = builder.Create();
alert.Show();

// 调用alert.Dispose()之前先调用alert.Dismiss()或alert.Cancel()
alert.Dismiss();
// 或
alert.Cancel();
alert.Dispose();

在上述示例代码中,调用alert.Dismiss()或alert.Cancel()方法后,再调用alert.Dispose()方法,确保AlertDialog被关闭并释放相关资源。

推荐的腾讯云相关产品和产品介绍链接地址:

腾讯云移动推送服务(TPNS):https://cloud.tencent.com/product/tpns

腾讯云移动推送服务(TPNS)是腾讯云提供的一款高效、稳定、可靠的移动推送服务,可帮助开发者实现消息推送、用户分群、消息统计等功能,适用于各类移动应用场景。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Dialog和PopupWindow的区别

Popupwindow默认不会响应物理键盘的back,除非显示设置了popup.setFocusable(true); 而在点击back的时候,Dialog会消失。...Popupwindow不会给页面其他的部分添加蒙层,而Dialog会。...其中最本质的差别就是: AlertDialog是非阻塞式对话框:AlertDialog弹出,后台还可以做事情; PopupWindow是阻塞式对话框:PopupWindow弹出,程序会等待,...在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。...这两种区别的表现是: AlertDialog弹出,背景是黑色的,但是当我们点击背景,AlertDialog消失,证明程序不仅响应AlertDialog的操作,还响应其他操作,其他程序没有被阻塞,这说明了

1.8K20

DialogFragment 使用

AlertDialog和PopupWindow随屏幕切换而消失,并且如果处理不当很可能引发异常。 DialogFragment的出现完美的解决了横竖屏幕切换Dialog消失的问题。...= null) { window.setLayout(lp.width, lp.height); } } } DialogFragment消失操作 DialogFragment在正常Dismiss后并不会直接从当前的栈中移除...,那么在dismiss需要手动的调用dismissAllowingStateLoss()方法,并且再次show不能用上一个DialogFragment实例。...DialogFragment并没有对Dialog的消失提供监听给调用者使用,但是我们通过源码分析得知,DialogFragment在onActivityCreate当中其实已经帮我们设置了onDismissListener...,所以我们如果需要对Dialog的消失进行监听的话只需重写onDismiss方法即可,还有一种方式则是覆盖父类设置的onDismissListener监听,但是需注意的,这个监听的复写,必须在父类onActivityCreate

1.6K10
  • 安卓自定义列表dialog

    系统自带列表Dialog 第一种:纯列表 我们先来看第一种: 最简单的一种,没有当前状态,只有列表,选中之后弹框就会消失(非手动调用dialog.dismiss()) ?...代码如下: AlertDialog alertDialog = new AlertDialog .Builder(MainActivity.this) .setItems(new String...(); 第二种:单选列表 这种列表会有checked提示,setSingleChoiceItems()中第二个参数就是控制第几个被选中,而且点击之后不会自动消失,需要手动调用dialog.dismiss...代码如下: AlertDialog alertDialog = new AlertDialog .Builder(MainActivity.this) .setSingleChoiceItems...而且点击之后也不会自动消失,需要手动调用dialog.dismiss(),有时会配合setNegativeButton()、setPositiveButton()等一起使用。 ?

    1.3K30

    Android之AlertDialog的基本使用

    坦白说,AlertDialog我在工作中用得并不多,因为AlertDialog的样式比较固定和呆板,为了和App的整体设计匹配,一般都是使用自定义的Dialog,只有在要求不高用一下。...与TextView、Button这些控件稍有不同,AlertDialog并不是初始化(findViewById)之后就直接调用各种方法了。...创建构造器AlertDialog.Builder的对象; 通过构造器的对象调用setTitle、setMessage等方法构造对话框的标题、信息和图标等内容; 根据需要,设置正面按钮、负面按钮和中立按钮...; 调用create方法创建AlertDialog的对象; AlertDialog的对象调用show方法,让对话框在界面上显示。...的对象调用的,所以这里的代码顺序会稍有不同:我们要先创建AlertDialog对象和View对象,然后再去初始化对话框中的控件。

    1.5K20

    Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?

    Dialog 首先来介绍一下Dialog的用法吧,其实很简单,相信大多数人都是经常使用的: AlertDialog.Builder builder = new AlertDialog.Builder(this...AlertDialog,就能让对话框在所有的系统版本中都保持一致的风格了。...Toast 说到不会阻挡用户原本正在进行的操作,这就延伸到我们今天的第二个主题,Toast。Toast只会弹出一段信息,告诉用户某某事情已经发生了,过一段时间后就会自动消失。...由于不会每次调用的时候都生成新的Toast对象,因此刚才我们遇到的问题在这里就不会出现了。...Snackbar使用一个动画效果从屏幕的底部弹出来,过一段时间后也会自动消失

    1.3K80

    Android实现iPhone晃动撤销输入功能 Android仿微信摇一摇功能

    首先我们自己定义一个alertdialog,自己依据个人的设计写一个布局,之后在代码中创建一个AlertDialog并使用LayoutInflater载入写好的布局文件 AlertDialog.Builder...我们希望点击框外的空白处不会让对话框消失,我们可以设置如下属性: dialog.setCanceledOnTouchOutside(false); 然后可以显现对话框,并自己定义其大小等属性: dialog.show...4.在onResume中注册监听事件,在注册,会有监听器listener,感应装置sensor和灵敏度rate三个参数,其中灵敏度有四种: SENSOR_DELAY_FASTEST:最灵敏的,反应非常迅速...:一般情况下使用的频率,比较慢,适用多数应用 SENSOR_DELAY_UI:使用传感器更新UI中的数据,使用该值 5.在onPause中取消注册监听事件 重写onSensorChanged方法,...,null); dialog.setCanceledOnTouchOutside(false);//点击框外的空白处不会让对话框消失 dialog.show(); dialog.setContentView

    2K62

    android推荐使用dialogFrament而不是alertDialog

    2、 好处与用法 使用DialogFragment来管理对话框,当旋转屏幕和按下后退键可以更好的管理其声明周期,它和Fragment有着基本一致的声明周期。...AlertDialog来创建一个登录的对话框。...左边为模拟器,右边为我的手机~~~~~ 7、屏幕旋转 当用户输入帐号密码,忽然旋转了一下屏幕,帐号密码不见了~~~是不是会抓狂 传统的new AlertDialog在屏幕旋转,第一不会保存用户输入的值...我们直接把上面登录使用AlertDialog创建的登录框,拷贝到MainActivity中直接调用: public void showLoginDialogWithoutFragment(View view...可以看到,传统的Dialog旋转屏幕消失了,且后台log会报异常~~~使用DialogFragment则不受影响。 好了,关于DialogFragment的介绍结束~~~~ 源码点击下载

    2.3K50

    has leaked window com.android.internal.policy.impl.PhoneWindow解决(Dialog.cancel、dismiss、hide区别)

    项目中有个Activity中用到了ProgressDialog,而在跳转到下个Activity就会报这个错: has leaked window com.android.internal.policy.impl.PhoneWindow...        super(context);         initFormats();     } 这样就可以理解为什么跳转时会提示这个错误了,我在finish当前Activity没有将...            mProgressDialog.dismiss();             mProgressDialog = null;         } 看来,让dialog消失有好几种方法...dismiss方法会释放对话框所占的资源,而hide方法不会。activity退出前必须调用dismiss方法关闭对话框。...现在问题清楚了,就是如果你在创建AlertDialog的时候调用了setOnCancelListener 这个mCancelMessage变量有作用,否则dismiss和cancel等同。

    50320

    信息提醒之对话框(AlertDialog + ProgressDialog)-更新中

    使用show()方法显示对话框是异步的,也就是说,当调用AlertDialog.Builder.show 或者AlertDialog.show方法显示对话框后,show方法会立即返回,并且继续执行后面的代码...使用AlertDialog类创建的对话框最多只能有3个按钮,因此,就算多次调用这3个设置按钮的方法,最多也只能显示3个。...例如,使用sendMessageDelayed方法设置消息代码为1的消息在(50+)毫秒后调用handleMessage方法,可以利用这个消息代码删除该消息,这样系统就不会在(50+)毫秒之后调用handleMessage...因此本案例单独使用了一个progress变量来代替当前进度,当进度条风格是圆形,就意味着对话框永远不会被关闭。...定义如下 protected Dialog onCreateDialog(int id) 当调用Activity.showDialog方法,系统会调用onCreateDialog方法来返回一个Dialog

    4.5K10

    安卓入门-第三章-安卓常用控件的使用方式

    可以看到,EditText中显示了一段提示性文本,然后当我们输入任何内容,这段文本就会自动消失。  不过,随着输入的内容不断增多,EditText会被不断地拉长。...加入描述性语句: android:maxLines="2"  这里通过android:maxLines 指定了EditText的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸...View.VISIBLE 、View.INVISIBLE 和View.GONE style 控制进度条的格式,默认的进度条为动态的环形,可以改为拖动条 android:max 用于给拖动条设置最大大小,调用活动的方法就能改变拖动条的当前值...如何才能让进度条在数据加载完成消失呢?这里我们就需要用到一个新的知识点:**Android控件的可见属性。...首先通过AlertDialog.Builder创建一个AlertDialog的实例 然后可以为这个对话框设置标题、内容、可否用Back键关闭对话框等属性 接下来调用setPositiveButton()

    1.8K20

    android 权限动态申请

    说一下,如果调用这个 ? 就会执行 ?...alertdialogbuilder = AlertDialogBuilder.create(); alertdialogbuilder.setCanceledOnTouchOutside(false);//点击外围不消失...checkSelfPermission 总是返回 false  很多说这个问题的 这就导致一个问题,如果用户进入 应用设置界面 设置了允许对应的权限  然后回到程序, 结果...总是调用这个....这就太奇葩了...显示的允许......然后发现必须自己重复点击一下拒绝,然后再点击一下允许 回到界面后才会正常........按理来说用户不会像我似的,因为我一直在调试 但是确实是一个问题..... ?...但是还有个问题,那天让一个朋友测试,发现另一个问题,,如果在安装的时候就修改,不允许任何权限,,那么安装完以后,也不会进入 ?  所以最终决定,把这里屏蔽了 ?

    75320

    .NET 8 中 Android 资源生成的改进和变化

    这是因为只有当我们构建最终应用程序并生成 R.txt 文件,我们才知道每个资源的Id。因此应用程序Resource类是唯一具有正确 Id的类。...,甚至根本不需要 UpdateIdValues 调用。这将改善应用程序的大小和启动时间。 这个新系统是如何运作的?...因为Resource类的命名空间不会改变。对于应用程序项目,项目 RootNamespace 中的 Resource 类将从设计器程序集中的 ResourceConstants 类派生。...它将由使用 NuGet 的应用程序在构建生成。 新系统与 Classic Pre .NET Xamarin.Android 以及 .NET 6/7 Android 软件包不兼容。...Xamarin.Legacy.Sdk是不受支持的,所以它只能作为用户升级到 .NET 8 的权宜之计。

    22410
    领券