Beiträge von Marco Feltmann

    Web Schnittstelle.
    REST (oder SOAP) API.
    Der Einfachheit halber jsonAPI.
    Datenbank so designen, dass Änderungen leicht und leichtgewichtig abgeglichen werden können. (a.k.a. 'Gelöschtes ausflaggen' vs. 'Kommentarlos wegwerfen')
    Finger weg von lokalem Gedöns.


    --


    Ansonsten: Wie bei Java auch via Sockets verbinden und eventuell einen DatabaseHelper basteln, der die Kommunikation übernimmt.
    Wirklich wirklich nur tun, wenn das ausschließlich intern im abgetrennten Subnetz mit in der Datenbank integrierter ACL benutzt wird.


    Also vermutlich eher Finger weg.

    +puh+
    Da fällt es mir wirklich schwer nicht sofort über alles Mögliche bezüglich der Rangehensweise loszumeckern. ^^


    Egal.
    Bei streng statisch typisierten Programmiersprachen wie Java gilt: Der Compiler hat immer recht. IMMER!!!


    Also nix mit "ClassCastException falsch". Du kannst Deinen Hintern darauf verwetten, dass die ClassCastException goldrichtig ist.


    In Deinem Fall gibt es dafür eigentlich nur eine Möglichkeit:
    1) Irgendwo in Deinem XML gibt es die ID 'k1' für ein ImageView.


    Wie stellst Du sicher, dass in dem XML gesucht wird, das Du hier dargestellt hast?
    Wie viele XML hast Du noch, in denen es irgendeine ID 'k1' gibt?

    Java
    File file = new File("/sdcard/Iteration_1.xml");

    Bitte unterlass' so etwas.
    Du weißt nicht, ob die externe Speicherkarte dort gemounted ist. Eventuell liegt die auch unter /emulated/0/sdcard oder sonstwo.


    Einfach so aus dem geschützten Bereich der App heraus auf das Dateisystem zuzugreifen, wird meines Wissens mit genau diesem Fehler quittiert.


    Nimm für sowas getExternalFilesDir(String);.

    Java
    File externalAppDirectory = context.getExternalFilesDir(null);
    File file = new File(externalAppDirectory, "Iteration_1.xml");

    Und immer daran denken: Es gibt Geräte ohne externe Speicherkarte. Da muss es dann getFilesDir(String) sein.

    Keine Ahnung, nach welchen Kriterien Du Dir das Ding zusammengestellt hast.
    Aber bei den Größen des Bildes ist schon mal etwas widersprüchlich.

    Code
    android:layout_width="128px"
            android:minWidth="128px"
            android:maxWidth="128px"
    
    
            android:layout_height="match_parent"
            android:minHeight="128px"
            android:maxHeight="128px"

    Die Frage ist halt, was genau das für Zahlen sind.


    Benutzereinstellungen -> Shared Preferences


    Für alles Andere hast Du mehrere Möglichkeiten.
    Datenträger
    SQLite mit Contentprovider und allem PiPaPo
    Internes Dateisystem
    Externes Dateisystem sofern vorhanden
    Cloud


    Datentyp
    CSV
    XML
    JSON
    Binärformat
    […]


    Verzeichnis im Dateisystem
    App Verzeichnis
    Nutzerdokumentenverzeichnis
    Nutzerdownloadverzeichnis
    selbst erstelltes Verzeichnis
    […]
    --


    Gemäß Deiner Anforderung würde ich vermutlich ein CSV nehmen, ohne PiPaPo.
    Also einfach 1\t2\t3\t4\t5\n als Ausgabe.

    Java
    String value = "1\t2\t3\t4\t5\n";
    File csvFile = File(Context.getFilesDir(), "output.csv");
    FileOutputStream writeStream = FileOutputStream(csvFile);
    writeStream.write(value.getBytes());
    writeStream.close();


    Zitat

    1 2 3 4 5

    Ich fürchte, Dein Versuch das auf das Wesentliche runterzubrechen war nur so semi–erfolgreich.


    Anstatt mit Try/Catch und If/Else herumzuspielen, hättest Du lieber den Textfeldern den richtigen Tastaturtypen übergeben sollen.
    android:inputType="numberDecimal" zum Beispiel.


    Anstatt die NullPointerException abzufangen hättest Du lieber schauen sollen, woher sie stammt und am Punkt des Auftretens die Variable auf einen sinnvollen Wert setzen sollen.

    Java
    if( eText1.getText() != null) {
      eText1a = eText1.getText().toString();
    } else {
      eText1a = "0";
    }

    Deine unzähligen Typumwandlungen von Text in String in String sind auch äußerst verwirrend.


    Die Benennung der Variablen ist ebenfalls ausgesprochen gewöhnungsbedürftig bis unintuitiv.


    Insgesamt scheint es mir so, als wüsstest Du gar nicht, was Du da tust sondern machst einfach irgendwas in der Hoffnung es zum Laufen zu bekommen.


    Eventuell solltest Du erst mal klein bei den offiziellen Android Trainings anfangen um ein Gefühl dafür zu bekommen, was wie warum funktioniert.

    Wobei ich als Argument bringen muss, Marco, es kann deine ideen persistent und editierbar speichern.

    Meine A5 Schreibhefte funktionieren auch in Usbekistan bei strahlender Sonne oder in der Antarktis zur Winternacht ohne Strom im Kerzenschein.
    So ein Device mag ungeschütztes Schwimmen in der Nordsee genau so wenig wie ein ungeschütztes A5 Schreibheft.
    Editierfunktionen wie 'Radieren', 'Streichen' und 'Überschreiben' funktionieren auch.
    Hinzu kommt, dass ich ganz schnell Skizzen einfügen kann oder irgendwo Texte ergänzen oder es um ein PostIt oder was einem sonst noch spontan so einfällt worauf man bei der Planung nicht kommt.


    Und Platz nehmen die genauso viel weg, bloß halt reellen und keinen virtuellen. ;)

    Gute Frage, bei mir dauert das nicht so lange.
    Allerdings hatte ich mit dem x86 Image auch so meine Probleme.


    Zeig doch mal die Konfiguration Deiner AVD.
    AVD Manager -> AVD rechtsklicken -> Show on Disk wählen -> Ordner '*.avd' öffnen -> config.ini im TextEdit öffnen und hier rein kopieren. :)
    (gegebenenfalls noch die hardware-qemu.ini)

    Gerade versucht an Dich zu senden und Folgendes bekommen:



    Fatal error: An error occured. Sorry.
    Information:


    ID: 45d4411b785db18bdee7dfab9504daf513db13ce
    Bitte teilen Sie dem Betreiber die oben stehende ID mit.
    Die Fehlermeldung kann mit dieser ID über „ACP » Protokoll » Fehler“ eingesehen werden.
    WCF::destruct() Unhandled exception: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away#0 /var/www/android-developers.de/wcf/lib/data/DatabaseObjectEditor.class.php(68): wcf\system\database\Database->prepareStatement('UPDATE\twcf1_ses...')#1 /var/www/android-developers.de/wcf/lib/data/acp/session/ACPSessionEditor.class.php(42): wcf\data\DatabaseObjectEditor->update(Array)#2 /var/www/android-developers.de/wcf/lib/system/session/SessionHandler.class.php(857): wcf\data\acp\session\ACPSessionEditor->update(Array)#3 /var/www/android-developers.de/wcf/lib/system/WCF.class.php(175): wcf\system\session\SessionHandler->update()#4 [internal function]: wcf\system\WCF::destruct()#5 {main}