2015-04-02 33 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 
}