
Micka
Fortgeschrittenes Mitglied
- 1
Hallo,
ich stehe derzeit vor einem Problem im Bezug auf das starten einer Activity.
Mein Projekt ist relativ umfangreich und arbeitet mit einem Arduino Mega und einer CouchDB. Ich versuche mal die relevanten Dinge zu erklären ohne das Ganze Projekt in aller Ausführlichkeit zu beschreiben.
Das Projekt besitzt 2 Activity's(Activity1 und Activity2). In der einen(Activity1) sind die Buttons und ein paar Textfelder. Wird Button1 betätigt startet ein Thread ruft übers Netzwerk Sensordaten ab und packt diese in die CouchDB. Das funktioniert auch alles.
Ich möchte die Daten aber nicht nur in die Datenbank lagern sondern bei Bedarf nach Betätigung des Button2 eine weitere Activity(Activity2) aufrufen.
Bishierhin alles kein Problem.
Das Problem besteht darin, dass ich von der Actvity1 auf eine Funktion der Activity2 zugreifen will. Genauer gesagt auf die Funktion die dem Graphen Punkte hinzufügt.
Nun dachte ich mir ich versuchs mal wie folgt.
Es gibt ne boolsche Variable namens temperaturgraphAnzeigen die bei Betätigung des Buttons2 auf true gesetzt wird. Im Thread wird die boolsche Variable abgefragt und dann ggf. gehandelt.
Bei Betätigung des Button2
passiert folgendes:
activity2 habe ich vorher deklariert.
Hier noch der Auszug aus dem logcat:
Scheinbar war mein Lösungsansatz falsch weil die oncreate Funktion der Activity ja nicht aufgerufen wird.
Gibt es ne Möglichkeit aus der Activity1 auf die Funktionen der Activity2 zuzugreifen?
ich stehe derzeit vor einem Problem im Bezug auf das starten einer Activity.
Mein Projekt ist relativ umfangreich und arbeitet mit einem Arduino Mega und einer CouchDB. Ich versuche mal die relevanten Dinge zu erklären ohne das Ganze Projekt in aller Ausführlichkeit zu beschreiben.
Das Projekt besitzt 2 Activity's(Activity1 und Activity2). In der einen(Activity1) sind die Buttons und ein paar Textfelder. Wird Button1 betätigt startet ein Thread ruft übers Netzwerk Sensordaten ab und packt diese in die CouchDB. Das funktioniert auch alles.
Ich möchte die Daten aber nicht nur in die Datenbank lagern sondern bei Bedarf nach Betätigung des Button2 eine weitere Activity(Activity2) aufrufen.
Bishierhin alles kein Problem.
Das Problem besteht darin, dass ich von der Actvity1 auf eine Funktion der Activity2 zugreifen will. Genauer gesagt auf die Funktion die dem Graphen Punkte hinzufügt.
Nun dachte ich mir ich versuchs mal wie folgt.
Es gibt ne boolsche Variable namens temperaturgraphAnzeigen die bei Betätigung des Buttons2 auf true gesetzt wird. Im Thread wird die boolsche Variable abgefragt und dann ggf. gehandelt.
Code:
if(temperaturgraphAnzeigen)
{
Activity2.Methodexyz(...)
}
passiert folgendes:
Code:
public void temperaturgraphAnzeigen(View v)
{
activity2 = new TemperaturGraphActivity();
startActivity(activity2.getIntent());
temperaturgraphanzeigen = true;
}
Hier noch der Auszug aus dem logcat:
die fett gedruckte unterstrichene Zeile zeigt im Code auf die Zeile mit dem Befehl04-11 15:26:58.311: W/dalvikvm(21265): threadid=1: thread exiting with uncaught exception (group=0x40d7d2a0)
04-11 15:26:58.356: E/AndroidRuntime(21265): FATAL EXCEPTION: main
04-11 15:26:58.356: E/AndroidRuntime(21265): java.lang.IllegalStateException: Could not execute method of the activity
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.view.View$1.onClick(View.java:3704)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.view.View.performClick(View.java:4232)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.view.View$PerformClick.run(View.java:17298)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.os.Handler.handleCallback(Handler.java:615)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.os.Handler.dispatchMessage(Handler.java:92)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.os.Looper.loop(Looper.java:137)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.app.ActivityThread.main(ActivityThread.java:4921)
04-11 15:26:58.356: E/AndroidRuntime(21265): at java.lang.reflect.Method.invokeNative(Native Method)
04-11 15:26:58.356: E/AndroidRuntime(21265): at java.lang.reflect.Method.invoke(Method.java:511)
04-11 15:26:58.356: E/AndroidRuntime(21265): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
04-11 15:26:58.356: E/AndroidRuntime(21265): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
04-11 15:26:58.356: E/AndroidRuntime(21265): at dalvik.system.NativeStart.main(Native Method)
04-11 15:26:58.356: E/AndroidRuntime(21265): Caused by: java.lang.reflect.InvocationTargetException
04-11 15:26:58.356: E/AndroidRuntime(21265): at java.lang.reflect.Method.invokeNative(Native Method)
04-11 15:26:58.356: E/AndroidRuntime(21265): at java.lang.reflect.Method.invoke(Method.java:511)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.view.View$1.onClick(View.java:3699)
04-11 15:26:58.356: E/AndroidRuntime(21265): ... 11 more
04-11 15:26:58.356: E/AndroidRuntime(21265): Caused by: java.lang.NullPointerException
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.app.Activity.startActivityForResult(Activity.java:3446)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.app.Activity.startActivityForResult(Activity.java:3407)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.app.Activity.startActivity(Activity.java:3617)
04-11 15:26:58.356: E/AndroidRuntime(21265): at android.app.Activity.startActivity(Activity.java:3585)
04-11 15:26:58.356: E/AndroidRuntime(21265): at de.gerding.wert_auslesen_wifi.WertAuslesen.temperaturgraphAnzeigen(WertAuslesen.java:144)
04-11 15:26:58.356: E/AndroidRuntime(21265): ... 14 more
Code:
startActivity(temperaturgraphactivity.getIntent());
Gibt es ne Möglichkeit aus der Activity1 auf die Funktionen der Activity2 zuzugreifen?