2015-04-02 40 views
0

因此,我正在更新一个现有的旧应用程序,并试图使它更具材质和更新。这个片段是否等于这个片段

旧应用程序的一个关键区域有一个“向导”类型的接口,它将是一系列活动,用户可以使用UI后退按钮或Android通过向导添加Parcelable数据并向前和向后移动返回键。

我已经更新到碎片整个应用程序,并且谷歌说没有UI后退按钮,我依靠默认后退按钮。

在默认后退键片段不注册,我想实现沿该解决方案的线路在Vinsol

这类作品的东西,但我需要确定哪些片段中使用的后退按钮这样我才能决定要做什么。这是主要活动的处理程序:

@Override 
    public void onBackPressed() { 
     if(selectedFragment == null) { 
      //this isn't a Fragment we need to handle 
      super.onBackPressed(); 
     }else if(selectedFragment == myFragmentOne){ 
      //do something here for that fragment 
      //before going back 
     }else if(selectedFragment == myFragmentTwo){ 
      //do something here for that fragment 
      //before going back 
     } 
    } 

空处理程序工作正常,因为我设置selectedFragment为null对我不感兴趣的任何特殊处理的片段。

但selectedFragment是null或Fragment。我如何检查selectedFragment是myFragmentOne还是myFragmentTwo?没有要检查的标签。

+0

这种方式难道这是一个问题''=='VS .equals()'? – Alexander 2015-04-02 00:42:08

+0

使用FragmentManager的后台堆栈。然后,你可以简单地.popBackStack()http://developer.android.com/reference/android/app/FragmentManager.html#popBackStack() – 2015-04-02 01:19:01

+0

我不想只是弹出后台堆栈,我需要保存和将可分段数据传递给接收片段 – DaveSav 2015-04-02 20:22:12

回答

0

入住使用instanceOf

if (selectedFragment instanceof CustomFragmentClass) { 
//put UR code 
}