首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >确认对话框后返回上一活动

确认对话框后返回上一活动
EN

Stack Overflow用户
提问于 2020-09-30 21:33:43
回答 1查看 41关注 0票数 0

当我单击back按钮时,我想关闭服务中的连接并返回到上一个活动。

第二个活动中的代码:

代码语言:javascript
运行
复制
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        if(mBound){
            val dialog = ConfirmDialog()
            dialog.show(supportFragmentManager, "confirm")
            //should wait here until "yes" button is pressed and if so, run the code

            mService.closeConnection()
            finish()
        }
        return false
    }
    return super.onKeyDown(keyCode, event)
}

当对话框打开时,代码继续并关闭连接,并返回到前面的活动。我想等到我点击“是”按钮,然后继续下面的代码。我知道我应该将代码放在对话框中,但是我不能将服务绑定到对话框,所以我不能从那里停止连接。对话框:

代码语言:javascript
运行
复制
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
    val builder = AlertDialog.Builder(requireActivity())
    builder.setView(view)
        .setTitle("Confirm")
        .setMessage("Do you want to exit?")
        .setNegativeButton("no", DialogInterface.OnClickListener(){ _: DialogInterface, _: Int ->
            //TODO
        })
        .setPositiveButton("yes", DialogInterface.OnClickListener(){ _: DialogInterface, _: Int ->
            //TODO
        })
    return builder.create()
}

同样,我想要的很简单,当单击back按钮时,我可以确认或拒绝,如果我确认,则关闭服务中的连接并返回到先前的活动。我想有一种更简单的方法可以做到这一点。

EN

Stack Overflow用户

发布于 2020-10-01 05:51:22

我相信您的ConfirmDialog()函数会返回一个AlertDialog,在这种情况下,您可以这样访问警报对话框视图的组件,并在单击按钮时关闭连接:

代码语言:javascript
运行
复制
dialog.(your_yes_button_id).setOnClickListener { 
        
}

上面的代码应该在下面:

代码语言:javascript
运行
复制
dialog.show(supportFragmentManager, "confirm")
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64138726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档