Beiträge von Marco Feltmann

    Ich glaube, deine While-Schleife an sich möchtest du so gar nicht haben.


    So wie ich die Sache jetzt verstehe, werden alle 10 Sekunden Screenshots gemacht – bei blockiertem GUI.
    In der gefühlten Nanosekunde zwischen notifyAll(), dem Ende von wait() und dem erneuten Beginn von wait() kann der User schlicht überhaupt nichts in der GUI tun. Du wirst also 10x den identischen Screenshot haben.


    Wäre es nicht sinnvoller, du packst diese While-Schleife in den AsyncTask und machst dort einfach so lange die Bilder, so dass das GUI vernünftig weiterlaufen kann?

    Entwurfsmuster von Kopf bis Fuß, Objektorientierte Analyse und Design von Kopf bis Fuß, Python von Kopf bis Fuß...


    Das gewünschte Exemplar habe ich hier nicht, das Konzept an sich ist allerdings ausgesprochen nett.
    Es kann natürlich sein, dass dir der Schreibstil nicht zusagt. So wie in diesem Inhaltsverzeichnis zieht es sich einmal durch das komplette Buch. Das kann man zum Beispiel auch am Probekapitel zur Garbage Collection sehen.


    Ich drück dir die Daumen, dass du es zum gewünschten Preis findest.

    Och, das hat nix mit der Länge oder Qualität zu tun.
    Du bist nur außerhalb von Methoden mit deinem Code, was zu Fehlern führt.


    Mach einfach aus
    //********** ALERT DIALOG*****************
    ein
    public void createAlertDialog() {


    und aus
    //***************ALERT DIALOG ENDE******************************
    ein
    }


    Dann sollte das laufen, wenn du irgendwo createAlertDialog() eingibst.

    Tja, was soll ich sagen?
    Ich gebe 5.123 rein und bekomme 5.123 raus. Keine Probleme.
    [code=java]//...
    String hilf=Location.convert(ueber, Location.FORMAT_SECONDS);
    // Mal ohne Umbauten.
    Log.e(TAG, "Hilf Result: "+hilf);
    double back = Location.convert(hilf);
    Log.e(TAG, "Back Result: "+back);
    //...
    hilf=Double.toString(einser);
    }


    Log.e(TAG, "Result: "+hilf);
    //...[/quote]


    Zitat

    04-14 15:57:33.153: ERROR/DataGatherer(1871): Hilf Result: 5:7:22.8
    04-14 15:57:33.163: ERROR/DataGatherer(1871): Back Result: 5.123
    04-14 15:57:33.163: ERROR/DataGatherer(1871): Result: 5.123


    An der Methode liegt es einfach nicht, es ist also nicht die fehlerhafte Methode.


    Vielleicht solltest du dir mal die Debugging Tipps von Android an.

    +hm+
    Kannst du mir mal erklären, wer deine Codes lesen können soll?
    Ich persönlich erkenne da jedenfalls überhaupt keine relevanten Informationen drin, weil es einfach kein Stück formatiert ist.


    Allerdings weiß ich nicht, ob das jetzt an dir oder am WYSIQYG Editor liegt...


    Anyways. Deine Fehlermeldung klingt eher so als würdest du den Adapter setzen bevor die onCreate aufgerufen wurde – keine Ahnung wie man das schaffen können soll.


    Wie dem auch sei würde ich zunächst auch einen leeren ListAdapter präsentieren und diesen dann füllen, nachdem die Daten da sind.
    Dafür übergibst du dem Adapter dann deine aufbereiteten Daten und schickst ihm ein notifyDataSetChanged().
    Daraufhin aktualisiert sich das ListView einmal komplett. Einen neuen Adapter setzen geht allerdings nicht.

    +hmpf+
    Hab mit meiner IDE gerade auch gewaltige Probleme mit elementaren/rudimentären Dingen.
    Wie kann es so viele Android-Apps geben, wenn das alles fast ausschließlich Probleme macht?


    Nun ja... Du nutzt vermutlich Eclipse.


    Und es sieht für mich so aus, als würde die Zuweisung deines Buttons komplett außerhalb einer Methode statt finden.
    Pack das Ganze lieber in eine Methode setUpButton(), die du in der onCreate aufrufst.
    Dann sollte das gehen. :)

    Tja, offenbar ist dein String kein String.

    Java
    @Override
    public void onStart()
    {
            super.onStart();
            String text = Location.convert(latitude, Location.FORMAT_SECONDS);
            Log.e(TAG, "Latitude "+latitude+"="+text);
            double calculated = Location.convert(text);
            Log.e(TAG, "Coordinate "+calculated);
    }


    Zitat

    04-14 13:20:59.466: ERROR/DataGatherer(613): Latitude 53.123=53:7:22.8
    04-14 13:20:59.476: ERROR/DataGatherer(613): Coordinate 53.123


    Oder vielmehr kein passender String.
    Wenn ich logCat richtig verstehe, übergibst du als String:
    "coordinate=6:5:60"


    Location.convert(String) erwartet aber ein "6:5:60".
    Da dürfte das Problem liegen.
    (Geht aber aus deinem Codebeispiel nicht hervor. Testest du die Beispiele,die du hier postest?)

    Zur ersten Frage:
    Wozu? 8|
    Du hältst doch dein Location Objekt die ganze Zeit vor.


    Wenn du also die formatierten Daten benötigst, dann gibst du diese via Convert() aus.
    Wenn nicht, dann nutzt du eben weiter deine Location.


    Also ich finde das schon ziemlich schlüssig.


    Anderes Beispiel: ich habe einen Wert 'Meter'. Dem gebe ich noch eine Methode 'Convert()' mit, welche mir die Yards errechnet.
    Auch hier: ich benötige kein Meter.Convert().Reconvert() um auf Meter zugreifen zu können, da ich simpel mit Meter auf Meter zugreifen kann.


    Wie dem auch sei: Location.convert(String) sollte doch genau das tun...


    Zum "Formatierungsproblem":
    Zum einen ist das Format eben nicht als 1/60 der Minute definiert, sondern als 1/3600 des Grads. Da kann durchaus einmal ne 60 oder ne 59,873 bei rum kommen.
    Wenn du andere Plattformen befragst, kann da durchaus eine Dezimalsekunde mit Nachkommastellen bei rum kommen. Millisekunden, Nanosekunden etc.pp.
    (Bei der Navigation war laut Wiki die Tertie 1/60 der Winkelsekunde.)


    Vergleichst du http://www.deine-berge.de/umrechner_koordinaten.php
    Da sieht es genau so aus.
    Eventuell ist die 60 ja eigentlich nur eine 59.9999999999999999999999999983123, die vom System freundlicherweise auf 60 aufgerundet und entsprechend dargestellt wird. Floats und Doubles sind da ja sehr ungenau.


    Du müsstest also selbst zusehen, dass du die Daten entsprechend deiner Vorstellungen formatiert bekommst.