如何确认退出单个片段?

时间:2018-01-24 05:49:42

标签: android android-fragments

我在离开片段之前已经确认退出了。但是我的活动有六张牌,每张牌在点击时都会调用一个片段。确认退出适用于此活动中的所有片段。如何将单个片段应用于称为自己片段的Garden Mapping卡(称为GpsFragment)。我需要在离开此片段(GpsFragment)之前确认退出

这是我的主菜单

enter image description here

这是我在主要活动中的代码

[object Object]

2 个答案:

答案 0 :(得分:0)

定义一个与您的活动和片段进行交流的界面

public abstract class BackPressFragment extends BaseFragment {
    public abstract boolean processBackPress();
}

YourFragment extends BackPressFragment {
    .....
}

在您的活动中处理关键事件,通过界面传递事件。

答案 1 :(得分:0)

您需要将onBackPressed()事件发送到片段。最好的方法是通过界面。 创建一个这样的界面:

 public interface IOnBackPressListener {

     void onBackPressed();
  } 

现在在片段中实现您的界面,如下所示:

 public class MyFragment extends Fragment implements IOnBackPressListener {

    public MyFragment(){

   }

   @Override
   public void onAttach(Context context) {
      super.onAttach(context);

    }

    @Override
    public void onBackPressed() {
     Log.e("Fragment","On Back pressed");
       // Alert code comes here
     }
    }

现在,在您的活动中,在onBackPressed()

中编写以下代码
   @Override
    public void onBackPressed() {
     IOnBackPressListener fragment=((IOnBackPressListener) 
     getSupportFragmentManager().findFragmentById(R.id.container));
     if(fragment!=null)
        fragment.onBackPressed();
     }