0

我想確定用戶是否在設置中。我有一個PreferencesActivity和一個SettingsFragmentPreferencesActivity with Fragment - 如何確定用戶輸入/離開

第一種方法是使用PreferencesActivityonResume和方法來做到這一點。問題是,如果我在設置(例如wlan設置)的某些子項目上單擊我的設置(PreferencesActivity),則會調用onPause方法,但我仍然處於設置中並且沒有離開它們。

是否有一些很好的解決方案來檢測,如果用戶加入或完全設置並且不僅僅是PreferencesActivity?


另一個考慮是從另一個活動時調用設置標誌,但你必須做的是,在它調用設置的每個活動。

然後存在如何確定用戶何時進行設置的問題。我嘗試過使用PreferencesACtivity的onBackPressed方法,但是如果我在SettingsFragment(設置子菜單)上單擊並轉到PreferencesActivity(設置主菜單),也會調用此方法。

+0

你試過使用Fragment.isAdded()或Fragment.isInLayout()?或者FragmentManager看它是否在棧中? – reden

回答

1

做到這一點。檢查你的任何片段是否仍然可見,並相應地去它

FragmentManager fragmentManager = YourActivity.this.getSupportFragmentManager(); 
List<Fragment> fragmentList = fragmentManager.getFragments(); 
if(fragment != null && fragment.isVisible()) { 
    //user is still in settings or sub-settings 
}else{ 
    //do something else 
} 
+0

我必須在使用PreferenceActivity的PreferencesActivity中使用您的代碼。所以沒有getSupportFragmentManager(),只有一個getFragmentManager(),但getFragmentManager()沒有getFragments()方法,就像你說getFragmentManager()沒有getFragments()方法那樣稱爲getFragments() – Maddy

+0

。檢查這個線程,我相信他們已經找到了一種方法,即如果你還沒有找到任何其他方式 http://stackoverflow.com/questions/6102007/is-there-a-way-to-get-references - 用於-全當前活動的片段功能於一個-活性狀況 – Jerry

相關問題