在背面按下里面片段显示对话框

时间:2016-03-03 14:38:36

标签: android android-fragments android-dialogfragment

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

  1. 用户按下
  2. 活动通过接口onBackPressed
  3. 通知片段
  4. 片段显示对话框,用户可以选择保存/取消保存数据
  5. 用户在对话框中选择一个选项
  6. 片段通知活动,调用super.onBackpressed()?
  7. 我不确定第5点,因为在第2点。我要避免默认行为,而不是5点。我要打电话给超级。 我需要保留片段内的保存业务逻辑。

    P.S。结果类似于FB应用程序在退出时要求您保存或删除仍为草稿的帖子。

2 个答案:

答案 0 :(得分:0)

你描述的是什么。或者,对于第5步,您只需执行

即可
getActivity().finish;

如果用户确认退出。

答案 1 :(得分:0)

在片段的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;