2013-02-27 111 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