我mPreference = (Preference)...
在下面的代码中得到一个空指针异常(即调试器打开,mPreference
显示空;NB 键是非空的,我可以用文字替换它仍然给我同样的异常):
public class SettingsManager extends PreferenceActivity {
private Preference mPreference;
private static boolean toggle;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the XML preferences file
addPreferencesFromResource(R.xml.preferences);
}
public void setPrefEnabled(Context context, String key, String enabled) {
if (enabled.contentEquals("true")) {
toggle = true;
} else {
toggle = false;
}
mPreference = (Preference) getPreferenceScreen().findPreference(key);
mPreference.setEnabled(toggle);
}
}
该类由以下代码在构造函数中实例化applySettings
的类的方法中调用:settingsManager
public class ConfigurationSetter {
private static Context mContext;
private static SettingsManager settingsManager;
public ConfigurationSetter(Context context) {
mContext = context;
settingsManager = new SettingsManager();
}
private static void applySettings(Context context, String key,
String value, String enabled) {
settingsManager.setPrefEnabled(mContext, key, enabled);
}
}
我一直在摸索这个问题,但可能有点太累了,无法自己解决。任何帮助表示赞赏。
与这个问题相关,我在这里问了一个关于意图是否是此活动所需的实例化器的问题。