2013-02-27 163 views
-1

我有一個偏好類,允許用戶從應用程序的設置中開啓了「提示」:如何檢查/通過設置狀態

public class Prefs extends PreferenceActivity { 
//Option names and defualt values 
private static final String OPT_HINTS = "hints"; 
private static final boolean OPT_HINTS_DEF = true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.settings); 
} 
/**Get the current value of the hints option */ 
public static boolean getHints(Context context) { 
    return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(OPT_HINTS, OPT_HINTS_DEF); 

} 
} 

的XML文件包含:

<CheckBoxPreference 
    android:key="hints" 
    android:title="@string/hints_title" 
    android:summary="@string/hints_summary" 
    android:defaultValue="true" /> 

我如何檢查是否 '提示' 設置爲開。然後,如果它設置爲開啓,我想讓應用程序執行某些操作。

感謝您的幫助

回答

0

我如何檢查是否「提示」設置爲開。然後,如果它設置爲開啓,我想讓應用程序執行某些操作。

使用你的代碼只需撥打:

if(getHints(this)) { 
    // The preference is checked, do something 
} 
else { 
    // The preference isn't checked 
} 

雖然它可能會更容易保存PreferenceManager.getDefaultSharedPreferences(context)在一個類變量當您添加更多的偏好。

+0

該方法'getHints'需要在它被調用的同一個Activity /類中嗎? – user2111061 2013-02-27 18:33:34

+0

我沒有注意到你希望它是靜態的,在這種情況下,你必須使用'Prefs.getHints(this)',只要活動共享相同的上下文,你應該沒問題。 (如果您嘗試使用'getApplicationContext()',則無法獲取值。) – Sam 2013-02-27 19:18:58