首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用弹出消息覆盖后退按钮

用弹出消息覆盖后退按钮
EN

Stack Overflow用户
提问于 2020-02-10 21:28:19
回答 1查看 140关注 0票数 0

我正在使用导航组件在我的片段之间导航。我有一个片段,用户可以在其中编辑一些数据。一旦发生任何变化,我就会设置标志“save= false”,并且在用户按下"save“按钮之后,标志就会转到”save= true“。现在,我想要做的是添加一个常用的弹出消息(您想保存这些更改吗?是的,没有取消)当用户按下一个后退按钮,但没有保存更改。另外,我还想将它添加到两个按钮中:

这个

和这个

我看了一下:https://developer.android.com/guide/navigation/navigation-custom-back,它只适用于(main)后退按钮,而不适用于工具栏上的按钮。当我需要转到代码中的前一个片段时,我使用:

代码语言:javascript
运行
复制
findNavController().popBackStack()

所以,我需要以某种方式覆盖这个函数还是添加一个回调?或者也许有完全不同的(更好的)方法来做这件事?

EN

Stack Overflow用户

回答已采纳

发布于 2020-02-10 22:42:38

下次请共享您的代码

我也遇到了同样的问题,这是我的解决方案,您需要在活动/片段中覆盖onOptionsItemSelected,并检查何时按下“后退”箭头。

代码语言:javascript
运行
复制
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home: 
        // put here what you would like to happen when u click on it
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

编辑:我只是注意到您正在使用Kotlin,所以我添加了一个kotlin示例:

代码语言:javascript
运行
复制
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.getItemId()){
    android.R.id.home -> {
        // put your code here
        return true
    }
}
return super.onOptionsItemSelected(item)

}

请随便问:)

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60158701

复制
相关文章

相似问题

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