【问题标题】:Show dialog on back pressed inside fragment在片段内部按下后显示对话框
【发布时间】:2016-03-03 14:38:36
【问题描述】:

我有一个活动,里面有一个片段。 在退出活动之前要求保存数据(通过对话框)的正确程序是什么?

  1. 用户按下返回
  2. Activity 通过 onBackPressed 接口通知片段
  3. 片段显示对话框,用户可以在其中选择保存/取消保存数据
  4. 用户在对话框中选择一个选项
  5. 调用 super.onBackpressed() 的片段通知活动?

我不确定第 5 点,因为在第 2 点。我必须避免默认行为,而不是在第 5 点。我必须调用 super。 我需要在片段中维护保存业务逻辑。

附:结果类似于当 FB 应用程序在退出时要求您保存或删除仍是草稿的帖子时。

【问题讨论】:

  • 发布您对活动的回调以及相关活动的 onBackPressed 方法

标签: android android-fragments android-dialogfragment


【解决方案1】:

您所描述的有效。或者,对于第 5 步,您可以简单地执行

getActivity().finish;

如果用户确认退出。

【讨论】:

  • 谢谢,我只是想知道完成和后压的差异。
【解决方案2】:

在片段的 onCreateView() 中,在返回视图之前,为其添加一个监听器:

v.setOnKeyListener( new OnKeyListener() {
                @Override
                public boolean onKey(View v, int keyCode, KeyEvent event) {
                    if( keyCode == KeyEvent.KEYCODE_BACK){
                           //do your stuff
                    }
                    return false;
                }
          });

        return v;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2015-01-03
    相关资源
    最近更新 更多