ListView prob.

  • moin moin :)


    1.Activity:


    die xml dazu:


    2. Activity:


    die xml dazu:


    und die Fehlermeldung in der Logcat:
    "06-21 08:10:52.796: ERROR/AndroidRuntime(221): Uncaught handler: thread main exiting due to uncaught exception
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.FH_APP/de.FH_APP.fh}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.os.Handler.dispatchMessage(Handler.java:99)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.os.Looper.loop(Looper.java:123)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ActivityThread.main(ActivityThread.java:4363)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at java.lang.reflect.Method.invokeNative(Native Method)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at java.lang.reflect.Method.invoke(Method.java:521)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at dalvik.system.NativeStart.main(Native Method)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ListActivity.onContentChanged(ListActivity.java:236)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:201)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.Activity.setContentView(Activity.java:1622)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at de.FH_APP.fh.onCreate(fh.java:55)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    06-21 08:10:52.844: ERROR/AndroidRuntime(221): ... 11 more
    "


    liegt es wirklich an der ListView oder woran?oO :/


    gruß chuky

  • Hi,


    in der Fehlermeldung steht ja eindeutig, dass eine Exception nicht gefangen wird. Der Fehler tritt in Zeile 55 der Klasse "fh" auf. (Achte bitte auf die Konventionen. package-Namen immer klein und Klassennamen immer mit führendem Großbuchstaben. Macht es übersichtlicher)


    Der andere Fehler:


    java.lang.RuntimeException: Unable to start activity ComponentInfo{de.FH_APP/de.FH_APP.fh}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'


    kommt von einem Schreibfehler, der in Deinem Bsp-Code aber nicht vorhanden ist. Die ID in der XML heißt "liste" und Du versuchst/versuchtest die ListView mit der id "list" aufzurufen.


    Mehr fällt mir auf den ersten Blick nicht auf.

    I have always wished for my computer to be as easy to use as my telephone.

    My wish has come true because I can no longer figure out how to use my telephone.

    Bjarne Stroustrup

  • Erstmal danke für deine schnelle Antwort :)


    zu dem ListView....ich versteh das nicht so ganz oO
    wenn ich angeblich versucht haben soll sie per "list" aufzurufen und jetzt aber "liste" da steht wie auch in der xml warum kommt der fehler dann trotzdem?oO
    und wenn ich auf einen datensatz in der liste klicke sollte sich eig. die 2.Activity öffnen aber genau da bricht er ab...sorry bin grad mehr als ratlos(liegt vllt. an mangelnder Erfahrung)


    gruß chuky

  • So. Hab jetzt mal etwas mit Deinem Code rumgespielt. Nachdem ich die zweite Klasse statt von ListActivity normal von Activity habe erben lassen ging es bei mir ohne Probleme. Allerdings ohne Daten aus dem Internet zu ziehen und ohne die ImageViews...


    Kannst das ja mal probieren. Und dann eventuelle Fehler nochmal schreiben.

    I have always wished for my computer to be as easy to use as my telephone.

    My wish has come true because I can no longer figure out how to use my telephone.

    Bjarne Stroustrup

  • es funzt danke dir sowas von :)


    dann hab ich ja nur noch ein Problem was ich lösen muss....:O
    und zwar kriege ich ja von der php-seite einen String der ungefähr so aufgebaut ist:
    @Datum|Name|Veranstaltung;Raum;Uhrzeit@Datum|Name|Veranstaltung;Raum;Uhrzeit@Datum|Name|Veranstaltung;Raum;[email protected]. können n Einträge sein.
    Was ich jetzt brauche ist das in der 1.Activity nur der Name angezeigt wird zu jedem eintrag und wenn ich ihn anklicke der gesamte Eintrag in der 2.Activity angezeigt wird....:/
    hast du vllt. einen Tipp?

  • Das hatten wir doch schon mal. :)


    Also zuerst solltest Du bei dem String das erste Zeichen wegkürzen:


    Java
    str = str.substring(1, str.length());


    Dann den String splitten:


    Java
    String[] strArr = str.split("@");


    Dann machst Du ein zweites String[] mit nur den Namen drin:


    Java
    String[] nameArr = new String[strArr.length];
    for(int i = 0; i < strArr.length; i++) {
       nameArr[i] = strArr[i].split("|")[1];
    }


    Das Namen-Array packst Du dann in das ListView.


    Java
    liste.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, nameArr));


    So. Und dann holst Du dir bei einem Klick auf ein Element der Liste dessen Position und lädst den Array-Eintrag:


    Java
    liste.setOnItemClickListener(new AdapterView.OnItemClickListener(){
    	@Override
    	public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
    		String entry = strArr[position];
                    Intent intent = new Intent(TestdroidActivity.this, Test2.class);
                    intent.putExtra("eintrag", entry);
    		startActivity(intent);
    	}
    });


    In der anderen Activity kannst Du dann den Eintrag holen mit:


    Java
    String entry = getIntent().getExtras().getString("eintrag");


    und diesen dann wieder an "|" splitten und entsprechend schön darstellen.


    Ich hoffe das ist ausführlich genug! :P

    I have always wished for my computer to be as easy to use as my telephone.

    My wish has come true because I can no longer figure out how to use my telephone.

    Bjarne Stroustrup

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!