在巢狀的Preference Screen模擬按下back鍵移除Preference Screen

如果有需要透過程式碼來模擬按下back鍵來移除巢狀Preference Screen時,可以參考這個方法。

此方法主要的原則是,巢狀Preference Screen在顯示時,是以 Dialog 來顯示。以下是Android Developer的說明

When it appears inside another preference hierarchy, it is shown and serves as the gateway to another screen of preferences (either by showing another screen of preferences as a Dialog or via a startActivity(android.content.Intent) from the getIntent()). The children of this PreferenceScreen are NOT shown in the screen that this PreferenceScreen is shown in. Instead, a separate screen will be shown when this preference is clicked.

所以要移除Preference Screen的話,只要取得該Preference Screen的Dialog將其移除,就可以移除掉Preference Screen

yourPreferenceScreen.getDialog().dismiss();

Microsoft Consoles Font

最近安裝了Office 2013之後,之前寫程式喜歡用的Console字型不見了!

本來想說換別的字型來看看會不會看得順眼

最後還是覺得這個字型順用

可以點選標題去下載囉!

只限用於Windows OS

如果移除FragmentManger裡的BackStack entry

在android版本時常的更新的現今,許多程式的寫程也開始有些轉變,之前就有提到目前官方已經開始希望開發者用fragment來取代activity

所以在所難免常常會有在fragment之間切換來切換去,並且加入到FragmentManager的backstack,以方便按下back按鍵時,可以返回前一個fragemnt。

但是如果為了好的使用者體驗,希望在程式運作到某一個情境時,清除所有的back stack entry,讓使用者不要在按下back按鍵時,發生一些悲劇體驗的話,你可以利用程式碼來清除back stack entry

// In your FragmentActivity use getSupprotFragmentManager() to get the FragmentManager.

// Clear all back stack.
int backStackCount = getSupportFragmentManager().getBackStackEntryCount();
for (int i = 0; i < backStackCount; i++) {

    // Get the back stack fragment id.
    int backStackId = getSupportFragmentManager().getBackStackEntryAt(i).getId();

    fm.popBackStack(backStackId, FragmentManager.POP_BACK_STACK_INCLUSIVE);

} /* end of for */

只要服用上述程式碼,就可以透過程式碼來移除back stack 如果想要看更多的參考的話,可以參考stackoverFlew的這份帖子……