`
handsomeliuyang
  • 浏览: 314888 次
  • 性别: Icon_minigender_1
  • 来自: 益阳
社区版块
存档分类
最新评论

什么时候调用Dialog的dismiss()方法

 
阅读更多

调用Dialog的dismiss()方法的方式:

1. 重写Dialog的onKeyDown()方法里进行调用:

 

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        Log.d(Constant.TAG,"dialog onKeyDown");
        if(keyCode == KeyEvent.KEYCODE_BACK) {
            dismissOut();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

 

 会出现的问题:如果用一直按住Back键,则会一直调用dismissOut方法,会让退出动画不停的执行。

2. 重写Dialog的onKeyUp()方法里进行调用:

@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        Log.d(Constant.TAG,"dialog onKeyDown");
        if(keyCode == KeyEvent.KEYCODE_BACK) {
            dismissOut();
            return true;
        }
        return super.onKeyUp(keyCode, event);
    }

 会出现的问题:用户按下Back键,退出的Dialog出来,用户松开Back键,退出的Dialog就会马上消失

3. 重写Dialog的onBackPressed()方法里进行调用:

@Override
    public void onBackPressed() {
    	Log.d(Constant.TAG,"dialog onKeyDown");
        dismissOut();
    }

 这样就没有问题了。

 

其实onBackPressed()方法也是在onKeyUp方法里进行调用的,只是做了判断,代码如下:

public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                && !event.isCanceled()) {
            onBackPressed();
            return true;
        }
        return false;
 }
 
分享到:
评论

相关推荐

    dialog dismiss时键盘不消失的问题浅析及解决办法

    这是因为`onDismiss()`方法在Dialog实际消失之后才会被调用,此时Dialog的窗口令牌(Window Token)已经无效,无法再用于隐藏软键盘。 为了解决这个问题,我们可以采取以下两种策略: 1. 在`onDismiss()`方法内...

    封装好的Dialog,实现的对话框类型多,并且功能强大,直接调用封装好的几个方法就可以实现各种对话框并处理其中的数据

    6. 关闭对话框:在适当的时候调用`dismiss`方法关闭对话框。 在`DialogDemo`文件中,开发者可以找到相关的示例代码,通过阅读和运行这些代码,更直观地了解如何利用这个封装库来创建和管理对话框。 总的来说,这个...

    Android 控制关闭Dialog

    例如,可以重写Dialog的`onClick`回调方法,根据业务逻辑决定是否调用`dismiss()`方法来关闭Dialog。对于输入验证,可以在输入错误时阻止`dismiss()`的调用,并显示错误提示,待用户修正错误后再关闭Dialog: ```...

    安卓Dialog对话框相关-项目通用Dialog.rar

    - 在异步操作中使用Dialog时,需要注意避免内存泄漏,确保在合适的时候调用`dismiss()`关闭Dialog。 - 对于Android版本兼容性问题,可能需要使用Support Library或AndroidX库来创建Dialog。 总之,Dialog在...

    Android Dialog各种实现

    - 显示Dialog:调用Dialog对象的show()方法。 3. 自定义Dialog: - 创建自定义布局:在res/layout目录下创建XML文件,定义Dialog的界面元素。 - 创建Dialog类:继承自AppCompatDialog或AlertDialog.Builder,...

    Android中用Dialog来做使用引导/新手引导页面

    在touch事件中,如果用户点击的是高亮区域外的部分,可以调用Dialog的dismiss()方法。 6. 整合到应用中: 最后,将自定义的Dialog集成到应用的MainActivity或其他入口点。在onCreate()方法中检查SharedPreferences...

    Dialog控件的使用

    通过调用`setStyle()`方法可以改变Dialog的风格。 最后,别忘了在AndroidManifest.xml文件中为你的Activity添加`android:configChanges="orientation|screenSize"`属性,以确保Dialog在屏幕旋转时能正确处理。 ...

    Android端5种显示dialog方法源码

    进度完成后,调用`dialog.dismiss()`关闭对话框。 3. **Material Design的Dialog** Android设计规范引入了Material Design,提供了更现代的Dialog样式。可以使用`androidx.appcompat.app.AlertDialog`配合自定义...

    dialog窗口大集合

    3. 显示和关闭Dialog:调用`show()`方法显示Dialog,调用`dismiss()`方法关闭Dialog。 Dialog窗口大集合中可能包含以下几种常见的Dialog类型: 1. **Alert Dialog**:最基本的对话框,包含一个标题、一条消息和一...

    一些关于Dialog用法

    要显示自定义Dialog,我们需要在Activity中调用它的show方法: ```java CustomDialog customDialog = new CustomDialog(); customDialog.show(getSupportFragmentManager(), "CustomDialogTag"); ``` 在自定义...

    Dialog对话框,包括选择项Dialog,进度条Dialog,下载进度条Dialog

    最后,调用`show()`方法显示Dialog。例如: ```java ArrayList<String> items = new ArrayList(); items.add("Option 1"); items.add("Option 2"); AlertDialog.Builder builder = new AlertDialog.Builder...

    AndroidDialog

    4. 显示和关闭Dialog:在Activity中,通过实例化自定义的Dialog类并调用`show()`方法来显示Dialog,调用`dismiss()`方法来关闭Dialog。 ```java CustomDialog dialog = new CustomDialog(this); dialog.show(); ```...

    自定义圆角的dialog

    3. **实例化并显示Dialog**:在需要使用Dialog的地方,实例化我们自定义的Dialog类,并调用`show()`方法显示它。 ```java CustomDialog dialog = new CustomDialog(getContext()); dialog.show(); ``` 4. **添加...

    Android实现Windows风格的Dialog

    关闭Dialog时,可以调用`dismiss()`方法。 7. **动画效果**:为了增加用户体验,可以添加进入和退出动画,使Dialog的出现和消失更加自然。这可以通过设置Dialog的动画属性或者自定义动画类实现。 8. **对话框尺寸*...

    自定义Dialog 显示正在加载动画效果 progressDialog

    完成加载后,调用`dismiss()`方法关闭Dialog。 通过以上步骤,我们就能实现一个具有自定义加载动画并且不会使Activity背景变暗的Dialog。提供的文件"**MyProgressDialog**"可能是这个自定义Dialog类的实现代码,...

    自定义的Dialog(使用的Linearlayout作为dialog)

    同样,可以提供一个`dismiss()`方法来关闭Dialog。为了保持良好的用户体验,确保在适当的时候关闭Dialog,例如在用户完成操作后或点击背景时。 5. 自定义样式和主题: 如果需要进一步定制Dialog的外观,可以在`...

    android自定义精美的dialog

    6. 显示和关闭Dialog:在需要的地方调用`show()`方法显示Dialog,当用户进行某种操作或者调用`dismiss()`方法时,Dialog会执行预设的退出动画并关闭。 `NiftyModalDialogEffects`这个文件名可能是指一个示例库或...

    Android 对话框(Dialog)大全

    1. **对话框管理方法**:Android框架为开发者提供了一系列的方法来帮助管理对话框,如`onCreateDialog()`、`onPrepareDialog()`、`showDialog()`、`dismissDialog()`等。 2. **对话框生命周期**:对话框的生命周期...

    自定义万能dialog

    调用`show()`方法显示`Dialog`,调用`dismiss()`方法关闭`Dialog`。 ```java dialog.show(); // 显示Dialog dialog.dismiss(); // 关闭Dialog ``` 6. **DialogDemo**: 根据提供的`DialogDemo`,这可能是一...

    自定义右上角带叉号Dialog Android 自定义layout Dialog

    这里,我们找到了关闭按钮的ImageView,并为其设置了一个点击监听器,当点击该按钮时,会调用`dismiss()`方法关闭Dialog。 总结来说,创建一个自定义右上角带叉号的Dialog,你需要: 1. 设计一个包含关闭按钮的...

Global site tag (gtag.js) - Google Analytics