Tengo una clase que extiende de PreferenceFragment y cuando el usuario hace un cambio deseo reiniciar la app, pero recibo el siguiente error:
FATAL EXCEPTION: main
Process: com.kirolm.instalacionesdep, PID: 22668
java.lang.NullPointerException
at com.kirolm.instalacionesdep.PreferenceFragment.restartApplication(PreferenceFragment.java:42)
at com.kirolm.instalacionesdep.PreferenceFragment.onSharedPreferenceChanged(PreferenceFragment.java:37)
at android.app.SharedPreferencesImpl$EditorImpl.notifyListeners(SharedPreferencesImpl.java:475)
at android.app.SharedPreferencesImpl$EditorImpl.apply(SharedPreferencesImpl.java:385)
at android.preference.Preference.tryCommit(Preference.java:1380)
at android.preference.Preference.persistString(Preference.java:1413)
at android.preference.ListPreference.setValue(ListPreference.java:139)
at android.preference.ListPreference.onDialogClosed(ListPreference.java:274)
at android.preference.DialogPreference.onDismiss(DialogPreference.java:390)
at android.app.Dialog$ListenersHandler.handleMessage(Dialog.java:1238)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Este es mi código java:
public class PreferenceFragment extends android.preference.PreferenceFragment implements OnPreferenceChangeListener,
OnPreferenceClickListener,OnSharedPreferenceChangeListener{
public Preferences prefs;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
prefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
//reiniciar la Activity con el nuevo idioma selecionado
restartApplication();
}
private void restartApplication() {
// TODO Auto-generated method stub
Intent intent = getActivity().getIntent();
getActivity().finish();
getActivity().startActivity(intent);
}
@Override
public boolean onPreferenceClick(Preference preference) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// TODO Auto-generated method stub
return false;
}
}
Alguna idea?
Gracias