A
Andro-medanebel
Neues Mitglied
- 0
Mein Programm soll solange warten, bis onSizeChanged ausgeführt wurde,
da dort Breite und Höhe meines Layouts ermittelt werden, die ich für
die weitere Programmausführung brauche.
Dafür wollte ich eine Hilfsvariable nutzen, die mit 0 initialisiert wird
und auf 1 gesetzt wird, wenn onSizeChanged() ausgeführt wurde.
Für diese Hilfsvariable habe ich ein Package mit einer Klasse,
die eine get- und eine set-Methode enthält, geschaffen.
Wenn ich jedoch ein Zugriff auf die Methoden erfolgt, bekomme
ich einen "Die Anwendung ... wurde unerwartet beendet"-Fehler.
Meine Programmstruktur:
In CustomLayout.java und MemoryActivity.java importiere ich die Hilfsklasse:
Meine Hilfsklasse im Package variablen_fuer_mehrere_klassen;:
In CustomLayout.java versuche ich nun in der Methode onSizeChanged,
die Methode setHilfsvar aufzurufen, was jedoch zu dem Laufzeitfehler
"Die Anwendung ... wurde unerwartet beendet" führt.
Logcat-Error-Ausgabe:
Weshalb bekomme ich den Laufzeitfehler und was muss ich ändern,
um auf meine get- und set-Methoden in der Hilfsklasse zugreifen
zu können?
da dort Breite und Höhe meines Layouts ermittelt werden, die ich für
die weitere Programmausführung brauche.
Dafür wollte ich eine Hilfsvariable nutzen, die mit 0 initialisiert wird
und auf 1 gesetzt wird, wenn onSizeChanged() ausgeführt wurde.
Für diese Hilfsvariable habe ich ein Package mit einer Klasse,
die eine get- und eine set-Methode enthält, geschaffen.
Wenn ich jedoch ein Zugriff auf die Methoden erfolgt, bekomme
ich einen "Die Anwendung ... wurde unerwartet beendet"-Fehler.
Meine Programmstruktur:
Code:
com
customview
CustomLayout.java
memory
MemoryActivity.java
variablen_fuer_mehrere_klassen
VariablenFuerActivityUndView.java
Code:
import variablen_fuer_mehrere_klassen.VariablenFuerActivityUndView;
Code:
package variablen_fuer_mehrere_klassen;
public class VariablenFuerActivityUndView {
public static int hilfsvar = 0;
public int getHilfsvar() {
return hilfsvar;}
public void setHilfsvar(int i) {
hilfsvar = i;}
}
die Methode setHilfsvar aufzurufen, was jedoch zu dem Laufzeitfehler
"Die Anwendung ... wurde unerwartet beendet" führt.
Code:
...
import variablen_fuer_mehrere_klassen.VariablenFuerActivityUndView;
public class CustomLayout extends RelativeLayout{
VariablenFuerActivityUndView h;
protected void onSizeChanged(int w, int h, int ow, int oh)
{
...
setzeHilfsvarAufEins(); //direkter Aufruf von h.setHilfsvar(1); führt hier
//zu "Cannot invoke setHilfsvar(int) on the primitive type int"-Fehler
//deshalb Aufruf in Methode verschoben
}
public void setzeHilfsvarAufEins()
{
h.setHilfsvar(1); //Führt zu "Die Anwendung ... wurde unerwartet beendet"-Fehler
}
...
Code:
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): FATAL EXCEPTION: main
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): java.lang.NullPointerException
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at com.customview.CustomLayout.setzeHilfsvarAufEins(CustomLayout.java:54)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at com.customview.CustomLayout.onSizeChanged(CustomLayout.java:48)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.View.setFrame(View.java:7101)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.View.layout(View.java:7028)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.View.layout(View.java:7034)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.widget.LinearLayout.onLayout(LinearLayout.java:1042)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.View.layout(View.java:7034)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.View.layout(View.java:7034)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.ViewRoot.performTraversals(ViewRoot.java:1049)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.view.ViewRoot.handleMessage(ViewRoot.java:1744)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.os.Handler.dispatchMessage(Handler.java:99)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.os.Looper.loop(Looper.java:144)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at android.app.ActivityThread.main(ActivityThread.java:4937)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at java.lang.reflect.Method.invokeNative(Native Method)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at java.lang.reflect.Method.invoke(Method.java:521)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-09 17:15:39.056: ERROR/AndroidRuntime(4764): at dalvik.system.NativeStart.main(Native Method)
02-09 17:16:00.056: ERROR/ClockWidget(250): weatherClock onReceive~ mUseAnimation:false
02-09 17:16:00.056: ERROR/ClockWidget(250): weatherClock onReceive~ mUseAnimation:false
um auf meine get- und set-Methoden in der Hilfsklasse zugreifen
zu können?