Beiträge von nachdenklich

    Hallo,


    wie so oft gibt es für dein Problem mehrere Lösungen:


    1) Verschiedene Foo Klassen
    Du schreibst dir also die Klassen Foo1, Foo2 usw. und implementierst das unterschiedliche Verhalten in den jeweiligen Klassen. Diese Lösung ist zwar naheliegend, aber ich würde sie mal als "naiven" Ansatz bezeichnen.


    2) Eine Foo Klasse mit einer Implementierung von onPostExecute()
    Diese Lösung setzt voraus das deine Klasse zur Laufzeit weiß was konkret in den verschiedenen Situationen in onPostExecute() passieren soll. Das bedeutet das deine Implementierung etwa so aussieht


    Java
    if(situation == 1)
      tue was in Situation 1 zu tun ist
    else if(situation == 2)
      tue was in Situation 2 zu tun ist
    else
      tue was sonst zu tun ist


    3) Auslagern des unterschiedlichen Verhaltens in separate Klassen
    Du gibts im Konstruktor deiner Foo Klasse eine weitere Klasse mit, die das jeweilige Verhalten implementiert. In der onPostExecute() Methode delegierst du dann an die übergebene Klasse. Das ist das sog. Strategie-Muster. Wenn du Tante google befragst wirst du dazu jede Menge Beispiele finden.


    Ich hoffe das hilft dir weiter.


    nachdenklich

    Hallo,


    eigentlich sollte ein ClassDefNotFoundException geworfen werden wenn eine Klasse zur Laufzeit nicht gefunden wurde.


    Kannst du hier eventuell den Stacktrace posten?


    Ursache einer NullPointerException ist häufig das Übergeben eines null-Arguments an eine Methode.


    Wie sieht den dein Methodenaufruf aus und wie ist die konkrete Signatur der aufgerufenen Methode?

    Hallo,


    hm, so ganz genau sagen kann ich auch nicht was die Ursache ist.


    Der folgende Schnipsel aus dem Stacktrace:


    Caused by: java.lang.OutOfMemoryError
    03-18 14:39:29.666: E/AndroidRuntime(1337): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
    03-18 14:39:29.666: E/AndroidRuntime(1337): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587)
    03-18 14:39:29.666: E/AndroidRuntime(1337): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:422)


    lässt vermuten dass eine deiner Bitmaps sehr groß oder aber kaputt ist. Hier kann ich nur vermuten das es eines der Icons ist die du in tableitem.xml einbindest.


    MfG
    Jirka

    Hallo,


    ich verwende seit einiger Zeit hier bei mir auch Java 7 und habe den Compiler compliance Level unter Eclipse auf 1.7 gestellt. Bisher habe ich keine Probleme feststellen können. Apps und Emulatoren laufen. Was heißt denn genau "ausgestiegen"? Hast du vielleicht einen Stacktrace?


    MgG
    Jirka

    Hallo,


    ein kleiner Tipp noch zu deinem Codeschnipsel.


    Display.getOrientation() solltest du nicht mehr verwenden, da es seit API-Level 8 als deprecated gekennzeichnet ist. Stattdessen kann du Display.getRotation() verwenden. Tatsächlich ist es auch so das Display.getOrientation() an Display.getRotation() delegiert. Auch solltest du in den case-Marken deines switch-Block nicht die numerischen Werte nutzen (magic numbers sind immer ungern gesehen) und stattdessen die Konstanten nutzen bspw. Surface.ROTATION_90 usw.. Das sind zwar nur kosmetische Änderungen aber die Lesbarkeit deines Codes verbessert sich.


    MfG
    Jirka

    Hallo,


    wenn im Layout die Button nebeneinander liegen dann wird zwischen ihnen immer eine Lücke gelassen (das sog. padding). Ich denke das ist der Grund warum die 4 120px breiten Buttons nicht in die 480px passen. Oder habe ich das Problem nicht richtig verstanden?


    mfg
    nachdenklich

    Hallo,


    na, so richtig werde ich aus der von dir geschilderten Fehlersituation nicht schlau.


    Dein zweiter Bildschirmabzug zeigt nur einen startenden Emulator (also die Android Animation). Startet der Emulator in dieser Situation auch korrekt, d.h. kannst du dann im Emulator Apps starten usw.?


    Ursachen für das Problem gibt es viele (alles nur Spekulation):


    - SDK-Version passt nicht zur ADT-Version
    - Port hinter dem der Emulator steckt ist belegt
    - an deiner Launch-Configuration ist was nicht i.o


    nachdenklich

    Hallo,


    ja, du benutzt getOrientation() aber getRotation() delegiert an getOrientation() und hat demnach auch die gleichen Rückgabewerte. Siehe auch die Sourcen aus dem Android-SDK:



    nachdenklich

    Hi,


    das einfachste wäre doch deine int-Werte in ein Array zu packen und dieses dann nach Größe zu sortieren (z.B. Bubblesort). Je nach Sortierreihenfolge (aufsteigend oder absteigend) befindet sich der größte Wert dann am Anfang oder am Ende des Arrays.


    nachdenklich

    Hallo,


    Display.getRotation gibt dir nicht ein Element aus Configuration sondern Konstanten aus Surface (also Surface.Rotation_0, Surface.Rotation_180 usw.) zurück.


    Du vergleichst also Äpfel mit Birnen. Daher die scheinbar falsche Ausgabe deinen Programms.


    nachdenklich