- Forum-Beiträge: 60
04.11.2011, 11:12:58 via Website
04.11.2011 11:12:58 via Website
Ich benötige Hilfe um in meinem Programm eine ProgressBar auf Knopfdruck erscheinen und bei einem erneuten Knopfdruck verschwinden zu lassen. Später soll beim anklicken eine Datenbank aktualisiert werden und die ProgressBar von selbst wieder verschwinden aber das ist ja erstmal egal.
Ich bin jetzt mit dem Eclipse-Debugger durch, und konnte es inzwischen soweit einschränken, dass es wohl schon im ersten auskommentierten Bereich zu dem Fehler kommt.
Hier mal der Code, wenn etwas fehlt, bitte sagen:
2
3import android.app.Activity;
4import android.content.Context;
5import android.content.Intent;
6import android.os.Bundle;
7import android.util.Log;
8import android.view.View;
9import android.view.ViewGroup.LayoutParams;
10import android.widget.Button;
11import android.widget.FrameLayout;
12
13
14public class StundenplanAuswahl extends Activity {
15
16 /*private boolean klick = false;
17
18 final LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
19
20 private static final String TAG = StundenplanAuswahl.class.getSimpleName();
21 String name = "android.widget.ProgressBar";
22 final FrameLayout f = (FrameLayout) findViewById(R.id.frame1);
23 final Button b = (Button) findViewById(R.id.button1); */
24
25 @Override
26 public void onCreate(Bundle savedInstanceState) {
27 super.onCreate(savedInstanceState);
28 setContentView(R.layout.stundenplan_auswahl);
29 //Log.e(TAG, "onCreate gestartet.");
30 }
31
32 public void wechsle11(final View view) {
33 startActivity(new Intent(this, plan11.class));
34 }
35
36 /*public void aktual(View view) {
37 Log.e(TAG, "aktual gestartet");
38 if (klick == false) {
39 b.setText(getString(R.string.ds_ButtonAktualisieren2));
40 try {
41 Class c = Class.forName(name);
42 Object o = c.getDeclaredConstructor(Context.class).newInstance(this);
43 if (o instanceof View) {
44 f.removeAllViews();
45 f.addView((View) o, params);
46 f.forceLayout();
47 klick = true;
48 }
49 } catch (Throwable tr) {
50 Log.e(TAG, "Fehler bei Instanziieren von "+ name, tr);}
51 }
52
53 else {
54 klick = false;
55 b.setText(getString(R.string.ds_ButtonAktualisieren1));
56 }
57 }/*/
58
59}
Die xml-Datei:
2<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical" >
6
7
8 <TextView
9 android:layout_width="wrap_content"
10 android:layout_height="wrap_content"
11 android:layout_gravity="center_horizontal"
12 android:text="@string/ds_TextView1" />
13
14
15 <TextView
16 android:layout_width="wrap_content"
17 android:layout_height="wrap_content"
18 android:layout_gravity="center_horizontal"
19 android:text="@string/ds_TextView2"
20 android:textAppearance="?android:attr/textAppearanceLarge" />
21
22 <Button
23 android:layout_width="match_parent"
24 android:layout_height="wrap_content"
25 android:text="@string/ds_Button11"
26 android:onClick="wechsle11"/>
27
28 <Button
29 android:layout_width="match_parent"
30 android:layout_height="wrap_content"
31 android:text="@string/ds_Button12" />
32
33 <Button
34 android:layout_width="match_parent"
35 android:layout_height="wrap_content"
36 android:text="@string/ds_Button13"/>
37
38 <Button
39 android:id="@+id/button1"
40 android:layout_width="match_parent"
41 android:layout_height="wrap_content"
42 android:text="@string/ds_ButtonAktualisieren1"
43 android:onClick="aktual"
44 />
45
46
47 <FrameLayout
48 android:id="@+id/frame1"
49 android:layout_width="wrap_content"
50 android:layout_height="wrap_content"
51 />
52
53</LinearLayout>
Wenn die beiden Bereiche auskommentiert sind, lässt sich die Activity starten, nur der Aktualisieren-Button löst dann natürlich einen Fehler aus.
Hier mal die Fehlermeldung die erscheint, wenn beide Bereiche unkommentiert sind, die Activity lässt sich dann garnicht starten, es kommt immer die Sorry!-Fehlermeldung im System. Hier mal der LogCat für den Falls das alles unkommentiert ist:
211-04 10:08:39.306: W/dalvikvm(352): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
311-04 10:08:39.325: E/AndroidRuntime(352): FATAL EXCEPTION: main
411-04 10:08:39.325: E/AndroidRuntime(352): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.yorrickreinhart.dashboard/com.yorrickreinhart.dashboard.StundenplanAuswahl}: java.lang.NullPointerException
511-04 10:08:39.325: E/AndroidRuntime(352): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
611-04 10:08:39.325: E/AndroidRuntime(352): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
711-04 10:08:39.325: E/AndroidRuntime(352): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
811-04 10:08:39.325: E/AndroidRuntime(352): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
911-04 10:08:39.325: E/AndroidRuntime(352): at android.os.Handler.dispatchMessage(Handler.java:99)
1011-04 10:08:39.325: E/AndroidRuntime(352): at android.os.Looper.loop(Looper.java:123)
1111-04 10:08:39.325: E/AndroidRuntime(352): at android.app.ActivityThread.main(ActivityThread.java:4627)
1211-04 10:08:39.325: E/AndroidRuntime(352): at java.lang.reflect.Method.invokeNative(Native Method)
1311-04 10:08:39.325: E/AndroidRuntime(352): at java.lang.reflect.Method.invoke(Method.java:521)
1411-04 10:08:39.325: E/AndroidRuntime(352): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
1511-04 10:08:39.325: E/AndroidRuntime(352): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
1611-04 10:08:39.325: E/AndroidRuntime(352): at dalvik.system.NativeStart.main(Native Method)
1711-04 10:08:39.325: E/AndroidRuntime(352): Caused by: java.lang.NullPointerException
1811-04 10:08:39.325: E/AndroidRuntime(352): at android.app.Activity.findViewById(Activity.java:1637)
1911-04 10:08:39.325: E/AndroidRuntime(352): at com.yorrickreinhart.dashboard.StundenplanAuswahl.<init>(StundenplanAuswahl.java:22)
2011-04 10:08:39.325: E/AndroidRuntime(352): at java.lang.Class.newInstanceImpl(Native Method)
2111-04 10:08:39.325: E/AndroidRuntime(352): at java.lang.Class.newInstance(Class.java:1429)
2211-04 10:08:39.325: E/AndroidRuntime(352): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
2311-04 10:08:39.325: E/AndroidRuntime(352): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
2411-04 10:08:39.325: E/AndroidRuntime(352): ... 11 more
Ich habe da leider noch überhaupt keinen Überblick, beim Auslesen der Fehlermeldungen, außer das wohl eine NullPointerException vorliegt. Ich weiß aber nicht wo genau die auftritt.
Es wäre toll wenn ihr mir helfen könnt.
PS: Kann mir jemand sagen, wie ich in diesem Board Spoiler mache? Dann muss man nicht immer durch den gesamten Code scrollen...
— geändert am 04.11.2011, 11:14:19