- Forum-Beiträge: 7
10.05.2013, 11:35:19 via Website
10.05.2013 11:35:19 via Website
habe gerade mit meiner ersten App angefangen und versuche jetzt das aktuelle layout über SharedPreferences zu speichern. Klappt auch wunderbar, nur beim Laden hakt es. Wenn ich meine zweite Activity aufgerufen habe, dann die App beende und dann neustarte, schmiert sie ab mit einer NullPointerException. Ich kann leider weder mit dem Debugger von Eclipse noch mit dem Errorlog umgehen. Von daher bitte ich hier um Hilfe.
Quelltext:
boolean newView = false; //Wird die andere Seite als Startseite gesetzt
String layout; //Welches ist das aktuelle Layout
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_soundboard);
loadPreferences(); //Lädt Benutzereinstellungen
//Lädt die Benutzereinstellungen
private void loadPreferences() {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
layout = sp.getString("LAYOUT", "1");
newView = sp.getBoolean("SECONDVIEW", false);
if (layout.equals("2") & (newView == true)) {
setContentView(R.layout.activity_soundboard_sorted);
}
else if (layout.equals("1") & (newView == false)){
setContentView(R.layout.activity_soundboard);
}
}
private void savePreferences(String key, String value) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit = sp.edit();
edit.putString(key, value);
edit.commit();
}
private void savePreferences(String key, Boolean value) {
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
Editor edit = sp.edit();
edit.putBoolean(key, value);
edit.commit();
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.action_settings:
if (newView){
Intent intent3 = new Intent(this, Soundboard.class);
startActivity(intent3);
//setContentView(R.layout.activity_soundboard);
savePreferences("LAYOUT", "1");
savePreferences("SECONDVIEW", false);
finish();
}
else {
Intent intent4 = new Intent(this, SoundboardSorted.class);
startActivity(intent4);
//setContentView(R.layout.activity_soundboard_sorted);
savePreferences("LAYOUT", "2");
savePreferences("SECONDVIEW", true);
finish();
}
newView = !newView;
return true;
Errornachricht:
05-10 08:04:06.932: D/AndroidRuntime(350): Shutting down VM
05-10 08:04:06.932: W/dalvikvm(350): threadid=1: thread exiting with uncaught exception (group=0x40015560)
05-10 08:04:06.962: E/AndroidRuntime(350): FATAL EXCEPTION: main
05-10 08:04:06.962: E/AndroidRuntime(350): java.lang.RuntimeException: Unable to start activity ComponentInfo{appname.app/appname.app.Soundboard}: java.lang.NullPointerException
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.os.Handler.dispatchMessage(Handler.java:99)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.os.Looper.loop(Looper.java:123)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.ActivityThread.main(ActivityThread.java:3683)
05-10 08:04:06.962: E/AndroidRuntime(350): at java.lang.reflect.Method.invokeNative(Native Method)
05-10 08:04:06.962: E/AndroidRuntime(350): at java.lang.reflect.Method.invoke(Method.java:507)
05-10 08:04:06.962: E/AndroidRuntime(350): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-10 08:04:06.962: E/AndroidRuntime(350): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-10 08:04:06.962: E/AndroidRuntime(350): at dalvik.system.NativeStart.main(Native Method)
05-10 08:04:06.962: E/AndroidRuntime(350): Caused by: java.lang.NullPointerException
05-10 08:04:06.962: E/AndroidRuntime(350): at appname.app.Soundboard.onCreate(Soundboard.java:148)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-10 08:04:06.962: E/AndroidRuntime(350): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
05-10 08:04:06.962: E/AndroidRuntime(350): ... 11 more
Wäre cool, wenn ihr mir ein paar Tips geben könntet und vielleicht den Fehler identifizieren.
— geändert am 10.05.2013, 11:43:05
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.