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

和这个

我看了一下:https://developer.android.com/guide/navigation/navigation-custom-back,它只适用于(main)后退按钮,而不适用于工具栏上的按钮。当我需要转到代码中的前一个片段时,我使用:
findNavController().popBackStack()所以,我需要以某种方式覆盖这个函数还是添加一个回调?或者也许有完全不同的(更好的)方法来做这件事?
发布于 2020-02-10 22:42:38
下次请共享您的代码。
我也遇到了同样的问题,这是我的解决方案,您需要在活动/片段中覆盖onOptionsItemSelected,并检查何时按下“后退”箭头。
码
@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示例:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.getItemId()){
android.R.id.home -> {
// put your code here
return true
}
}
return super.onOptionsItemSelected(item)}
请随便问:)
https://stackoverflow.com/questions/60158701
复制相似问题