Beiträge von titus

    Hi Funtik,


    erstmal Willkommen im Forum :)


    Zweck Bücher Für Android würde dich dir was von Reto Meier oder Anro Becker empfehlen.


    @Lucas de Vil

    Zitat

    Weiterhin treibt mich die starre Typisierung in den Wahnsinn, aber das Problem dürftest du nicht haben. :)


    Echt? Ich muss mich zur Zeit mit Script sprachen rumschlagen und da wäre eine starre Typisierung mein Traum.


    Mfg Titus

    Hi Timee,


    noch als Tipp:


    1.) in Java hat sich die Naming Conventions durchgesetzt das Variablen (zbsp. String Objekte oder int Variablen) mit einem kleinen Buchstaben beginnen. Wenn man sich an diese Convention hält ist es vorallem für andere leichter deinen Code zu lesen bzw zu vestehen.


    2.) im try/catch solltest du dir immer aber aufjedenfall wärend der Entwicklung den Stacktrace oder die Message ausgeben lassen. EIn einfacher Toast mit "Es ist ein Fehler aufgetreten" wird dir bei Fehlersuchen wenig helfen.


    wie gesagt sind nur Tipps.


    Mfg Titus

    Hi oldwarrior,


    der Fehler im Code mit dem ContentValues ist der gleiche wie mit dem Array du wandelst es in einen String um.


    Vielleicht macht das hier die Sache deutlicher:

    Java
    //Das 
    String sqlStr = ""+ cv;
    //ist das gleiche wie das hier
    String sqlStr = cv.toString();


    und genauso mit dem Array:

    Java
    int[] arr = {1,2,3,4,5,6};
    //Das 
    String strArray = ""+ arr;
    //ist das gleiche wie das hier
    String strArray = arr.toString();


    so was du aber möchtest ist den Inhalt des Arrays bzw. der ContenValue in die Datenbank übertragen nicht das Objekt als String.


    In den Links kannst du sehen das die Klasse SQLiteDatabase eine Methode bereitstellt die es ermöglich den Inhalt einer Zeile zu verändern(SQL Update). Diese erhält laut Doku den Tabellenname, den geänderten Inhalt (ContentValue), wo es geändert werden soll und unter welcher Bedingung.


    Vielleicht zeigt dieses Beispiel die ganze Sache ein wenig besser:


    Beispiel stammt aus Android -Grundlagen und Programmierung von Arno Becker und Marcus Pant


    So nun das ganz mit deinem Problem:


    mfg Titus

    Hi oldwarrior.


    ähm du hast dir aber mal die Links angesehen die ich gepostet habe oder?
    Weil dein Code ist Blödsinn und kann auch nicht gehen. Sry.


    mfg Titus


    EDIT:
    P.s. Schau dir die Links an und wenn du dann nicht weiterkommst oder Fragen hast melde dich einfach wieder

    Hi Wolfbyte,


    ja das sollte gehen.


    Zitat

    Der Grund ist, dass die Javascript-Dateien auf PHP-Datenfunktionen die auf die Datenbank auf unserem Server zugreifen sollen, da sind Sachen wie z.B. Login drin.


    mmhh das Prblem ist wenn du die HTML-Datei als richtige Datei mit dem App auslieferst also entweder im Assets Ordner oder du schreibst sie in den internen Speicher kann ein Angreifer diese sehr einfach auslesen.
    Assets Ordner -> einfach apk entpacken -> dieser Ordner wird erst zu Laufzeit übersetzt
    internen Speicher -> root rechte ermöglichen den Zugriff auf das lokale Dateisystem


    Die Frage ist jetzt ob es ihm das was bringt wenn er die JS Datei ausliest aber das kannst halt nur du entscheiden.


    Auf die schnelle würde mir jetzt nur einfallen entweder die URL zur Laufzeit in die HTML Datei zuschreiben oder das komplette HTML Dokument als String in eine Java Klasse zuschreiben. Sind halt nur Quick and Dirty Ideen.


    Mfg TItus

    Hi Wolfbyte,


    Zitat

    Ist es möglich und wenn ja wie, eine App mit einer WebView zu erstellen, die alle Websiten HTML und Image Resourcen offline, also von der SD-Karte lädt UND GLEICHZEITIG bestimmte Javascript-Dateien, die im HTML über <script src="irgendwo-auf-dem-Server"></script> eingebunden wurden von einer Externen Quelle, in meinem Fall von einem Server lädt?


    meinst du damit sowas:
    lokale HTMl-Datei und in dieser steht dann folgendes:

    Code
    <html>
       <head>
         <script src="irgendwo-auf-dem-Server"></script> 
       </head>
        <body>
         .....
        </body>
    </html>


    Ja das geht und eigentlich müsste er die JS-datei auch automatisch laden.
    Wichtig ist das im Manifest die Permisson Internet gesetzt ist.


    Einen Nachteil hat aber dieser Code das JS geht nur wenn das Gerät online ist und es muss dann auch immer Übertragen werden.


    Gibt es einen bestimmten Grund warum du das JavaScript nicht mit auf das Gerät legst?


    mfg Titus

    Hi oldwarrior,


    Also das da so ein komisches Zeug drin steht liegt daran das du ein Array in einen String "konvertierst".


    Beispiel:

    Java
    int[] arr = {1,2,3,4,5,6};
    System.out.println("Array "+ arr);


    Ausgabe:

    Code
    Array [I@19821f


    Wenn es nicht wirklich wichtig ist solltest du deinen SQL-Befehl nicht als String codieren sondern die von Android vorbestimmten Methoden zur DB Manipulation nutzen.
    SQLiteDatabase -> update
    ContentValues -> put


    Mfg Titus

    Hi Lucas de Vil,


    Zitat


    // Nachtrag
    Offenbar wird onCreate() auf die Klasse nicht ausgeführt bzw. meine Prüfroutine wird zuvor aufgerufen. Ob das externe setContentView() gegriffen hat, kann ich grad nicht sehen. Vermutlich aber nicht, so dass es schlicht keinen ContentView gibt aus dem das View gezogen werden könnte. Und irgendwas Anderes müsste auch noch uninitialisiert sein, was es im Normalfall nicht sein dürfte. Na, mal weitersuchen.


    Kannst du mal deinen Code der Activity posten? externe setContentView()?


    Mfg Titus

    Hi Lucas de Vil,


    hab nochmal in die Doku geschaut und was seh ich da die Erklärung für die ganze Sache :)

    Zitat


    ListPreference:
    This preference will store a string into the SharedPreferences. This string will be the value from the setEntryValues(CharSequence[]) array.


    Link: ListPreference


    Hab auch noch ein Tut gefunden was dich vielleicht interessieren könnte.


    mfg Titus

    Hi Lucas de Vil,


    Zitat

    Ich verstehe, dass PreferenceManager.getDefaultSharedPreferences(this).getLong("lastDownloadAtTimestamp", 0); einen Wert als Long auszulesen versucht. Ebenso verstehe ich, dass es leider einen String zurück bekommt, der sich nicht in ein long wandeln lassen möchte.


    Äh? Also wenn du die Methode getLong(key,defaultValue) aufrufst bekommst du auch einen long-Wert zurück und keinen String.


    mmhh versuch das mal:

    Java
    long value = PreferenceManager.getDefaultSharedPreferences(this).getLong("lastDownloadAtTimestamp", 0L);


    geht das?


    mfg Titus

    Hi Lucas de Vil,


    Zitat

    Woher soll ich wissen, dass PreferenceManager.setDefaultValues() eine Ressource vom Typ PreferenceScreen erwartet?


    Es steht in der Developer Doku.


    Zitat

    Wie kann ich zukünftig Zeit sparen und auf den richtigen Fehler stoßen?


    Der erste Weg für in der Regel über die LogCat(Exception) und alles was dann kommt hängt halt vom Fehler ab.
    Zeit wirst du nur durch Erfahrung sparen aber dieses Problem hast du bei jeder Entwicklung egal welche Plattform oder Sprache du wählst.


    Mfg Titus

    Hi Salmii,


    die IDs solltest du nicht hartcodiert in deiner Klasse eintragen auf jedem Gerät sind die nämlich anders.


    Besser ist du machst das so:

    Java
    final int KugelROT = R.drawable.kugelRot;
    final int KugelGRUN = R.drawable.kugelGRUN;


    Mfg Titus