我希望以编程方式启用/禁用checkboxPreference,具体取决于ListPreference中的值。不推荐使用getPreferenceScreen方法:
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if ( key.equals(PREF_KEY_VORL) ) {
Log.v("PreferenceChange", "Vorlage: " + prefs.getString(key,"Sonstige"));
if(prefs.getString(key,"Sonstige").equals("Sonstige")) //Vorlage == Sonstige
{
getPreferenceScreen().findPreference(PREF_KEY_UTMREF).setEnabled(true);
}
else
{
getPreferenceScreen().findPreference(PREF_KEY_UTMREF).setEnabled(false);
}
}
}
此外,我在行中收到错误,我调用了getPreferenceScren.find ....
它在此行中使用NullPointerExeption崩溃
thx tom
编辑: 我正在使用Fragments,我有一个fragement类,我建立了我的偏好屏幕:
public class SettingsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from a XML resource
addPreferencesFromResource(R.layout.settings);
}
}
答案 0 :(得分:2)
该方法已被弃用,因为您应该使用PreferenceFragment
,但是11以下的API仍然需要使用旧方法,因为没有SupportPreferenceFragment
可以使用。不推荐使用的方法不会影响您的应用,除非该方法已从SDK中完全删除。
你得到一个空的异常,可能是因为它找不到你给它的密钥