Beiträge von antifish

    Ja das geht, probiers mal so


    Simpel: lass einfach das .addToBackStack weg, dann passiert mit drücken des Back Key nix mehr.


    Zusätzlich würde ich dir empfehlen für die zwei Fragmente nur jeweils eine Variable zu verwenden, diese beim app-start zu initialisieren und dann nur noch zuzuweisen und nicht jedes mal neu zu initialisieren.

    Das Bitmap decodieren gibt dir nur eine Referenz zum decodierten Bild zurück, welche niemals identisch sein wird zu einer anderen Referenz desselben decodierten Bildes.
    Leg doch eine int Variable an mit der id des decodierten Bildes, dann kannst du später mit dieser vergleichen, vorallem auch ohne das Bild extra neu zu decodieren.


    Gruss
    antifish

    Oder, falls du zu faul bist, folgendes aufrufen:


    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder(
    StrictMode.getThreadPolicy()).permitNetwork().build());


    :D



    Gruss
    antifish

    Hi,


    Super das es jetzt klappt. Das währe mein nächster Vorschlag gewesen, also die App mal komplett zu deinstallieren. Wahrscheinlich hatte das starten über Eclipse den selben Effekt. Vielleicht war deine sqlite db noch alt oder sonstige "Leichen" von einer älteren APK.
    Würde dir sowieso mal das debugging mit dem angeschlossen handy, ein paar Breakpoints setzten, etc, empfehlen, macht das Leben sehr viel einfacher :)


    Gruss
    antifish

    Hallo M3doXX,


    was heisst denn "es funktioniert nicht"? Absturz? Oder .DB wird nicht kopiert? Oder sonst was?
    Einfach so kann ich dir das nicht sagen, wo das Problem liegt.
    Am besten postet du mal die Ausgabe vom LogCat (kannst du ja in Eclipse zuschalten und nach deiner App filtern, dann siehts
    du all die unnötigen anderen Messages nicht)


    Mit was für einer Android Version startest du dein Emulator? Und was für eine hast du auf dem Handy?


    Gruss
    antifish

    Danke antifish,


    ich verstehe - macht natürlich Sinn. Wenn es so läuft, würde mich eins noch brennend interessieren. Kann man in einem Thread auch auf ein View-Element zugreifen um zu prüfen, ob ein Button geklickt wurde als Beispiel?


    Muss ich eine Thread-Klasse erstellen, welche vom Thread erbt und dann überschreibe ich die run-Methode um ein View-Element zu übergeben oder gibt es einen Trick?

    Du kannst aus einem Thread auf ein View element zugreifen, solange du eine Refernez dazu hast.
    Allerdingst ist die Android UI ja Event basiert, also muss du nicht den Button abfragen ob er gedrückt ist, sonder der Button sagt dir wenn er gedrückt wird.
    Dazu kannst du einen "Listener" kreieren und beim Button setzen, somit weiss der Button wem er Bescheid sagen muss wenn er gedrückt wird.
    In Code für dein Beispiel etwas so:


    Button button = (Button)findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    changeColor.stop();
    }
    });

    Wird das File dann erstellt und bleibt einfach leer? Oder gibts gar kein File? Kannst du mal prüfen wie oft er die Schleife macht wo du Inputstream liest und in Outputstream schreibst?
    Ansonsten machst du ein .zip File des Sourcecodes (inkl asset) und schickst mal rüber, kann nur ein kleiner Fehler sein..


    Gruss
    antifish


    Mhhh probier mal... + "\/"

    Hallo M3doXX,


    was heisst genau "Es passiert einfach gar nichts"? Bleibt deine APP hängen, oder kopiert er einfach die Datenbank nicht?
    Am besten mal einen Breakpoint setzen und step-by-step durchgehen, ansonsten ist sehr schwer zu sagen was
    das Problem ist, vorallem wenns keine Fehlermeldung gibt (auch im LogCat nicht?)
    Einzige spontante Idee: Wenn du die App komplett deinstalliert hast, kann es sein dass es den Ordner "/...glandorf/databases"
    noch nicht gibt? Oder wird der vom SQLiteOpenHelper erstellt? Arbeite normalerweise ohne den Helper...


    Du kannst mal proberen denn String DATABASE_PATH in deiner "public MySQLiteHelper(Context context){ .."
    mit "DATABASE_PATH = this.myContext.getFilesDir().toString() + "/";" zu füllen.


    Gruss
    antifish

    Ich kriege weder eine Exception noch stürzt er ab. Es passiert einfach gar nichts.
    In der onCreate werden ja die Tabellen erstellt. Jetzt hab ich einfach darunter noch die neue Methode copyDataBase() gesetzt.
    Ich habe die App aufm Emulator komplett deinstalliert und wieder installiert.
    Über eine Lösung für das Problem würd ich mich sehr freuen ;)
    Gruß


    M3doXX

    Hallo Steusi,


    Du darfst aus einem anderen Thread nichts an der UI ändern, das darf nur der UI-Thread, deswegen stürzts bei .invalidate() ab. Probier mal stattdessen .postInvalidate(), dies zeigt dem UI Thread an das er dein View neu zeichnen soll. Gibt auch andere Lösungen wie Activity.runOnUiThread() aber eigentlich sollte es so klappen.


    Gruss antifish

    Hallo Harri,


    einen direkten Weg kenne ich nicht, du könntest aber probieren das Canvas Object auf ein Bitmap zu zeichnen und von diesem den pixel auszulesen?

    Java
    RectF path_rect = new RectF();path.computeBounds(path_rect, true); 
    Bitmap bmp = Bitmap.createBitmap((int)path_rect.width(), (int)path_rect.height(), Config.ARGB_8888);Canvas canvas = new Canvas(bmp); 
    canvas.drawPath(path, paint);int pixel = bmp.getPixel(x, y);


    einfach mal probieren :)

    mein Vorschlag währe das RelativeLayout zu verwenden, finde das
    etwa das "mächtigste" Layout dass du zur Verfügung hast.


    Also als TopLayout ein Relative Layout, darin platzierst du deine 3 andere Layouts, zB 1xLinearLayout oben,
    ScorllView mitte, 1xLinearLayout unten.
    Das erste LinearLayout kannst du auf fixe Höhe 40pixel setzen und auf "align parent top" setzen, somit ist es
    immer zuoberst ist, das zweite LinearLayout auch auf fixe Höhe 40Pixel, "align parent bottom" somit ist es immer
    zuerst, dein Layout mit dem andere Inhalt (scrollview) kansnt du dann auf "below linearlayout1" und "above linearlayout2"
    stellen, was es zwischen die zwei anderen setzt


    hoffe ist etwa klar wie? ;)

    ich verwende immer Ctrl-Space um die autovervollständigung aufzurufen, also nix mit
    abcde...Z hinzufügen bei den Option, hilfreich um deine eigenen Variablen zu Vervollständigen.
    Eclipse vervollständig auch die komplette Varaiable wenn er keine andere Möglichkeit kennen würde, zB
    deine Variable heisst mAsdsdsd, du tipps mAs + Ctrl-Space und es sollte automaisch mAsdsdsd stehen...
    kennt er mehrer vorschläge kannst du ja mit der pfeiltaste nacht unten / oben um den passenden
    auszuwählen

    Hallo fargoTof


    könnte deine Listener Klasse ein eigenes Interface implementieren? zB

    Java
    public interface IJobFinished{public void jobFinished(Job foo);}



    danach müsste deine Listener Klasse einfach dieses Interface implementieren?
    Solbad der Job abgearbeitet ist ruft er auf seinem registrieren Listener .jobFinished(this)
    auf oder sowas?
    Dein Listener könnte ja auch noch eine Refernez zum Job behalten und bei
    jobFinished kontrolliere ob es derjenige ist den er gestartet hat?