Beiträge von antifish

    Leider fehlt noch der Code von deinem SectionPagerAdapter? Ich nehme an da instanziert du Fragment1 und Fragment2? Je nach übergebener Position?
    Es fehlt auch der Ort wo du die SendText(...) aufrufst? Ist das aus einem onClick von einem Button?



    Falsch ist dein


    Java
    btn = (Button)findViewById(R.id.button1);


    in deiner MainActivity. "button1" gehört zu Fragment1 und wird in deiner MainActivity nicht gefunden, "btn" wird nach diesem Befehl null sein? Im Fragment1 machst du das ja auch, da ist es korrekt und wird button1 gefunden.




    Da ich deinen ganzen Code nicht kenne weiss ich nicht ob du WIRKLICH eine korrekte Referenz zu Fragment2 in deiner MainActivity hast? Falls ja dann sollte es so funktioniere:

    Java
    public void SendText(View v) {
    Fragment2.passDataToFragment("Hi from FragmentActivity");
    }



    Denn du brauchst dein fragmentCommunicator nicht, da ja Fragment2 dieses Interface implementiert kannst du es ja dirket aufrufen.
    Du könnest ebenfalls folgendens machen:

    Java
    public void SendText(View v) {
    fragmentCommunicator = Fragment2;
    		fragmentCommunicator.passDataToFragment("Hi from FragmentActivity");
    	}


    Was aber eher sinnlos währe...

    Wo brauchst du dann Fragment1 / Framgnet2? Finds weder in deinem .xml oder ViewPager?


    du musst dann auch nicht fragmentcommunicator.passDatatoFragment aufrufen, sondern Fragment2.passDataToFragment, da ja die Klasse Fragment2 das Interface "FragmentCommunicator" implementiert. Allerdings seh ich in deinem Code keine Referenz zu einen Fragment2 und auch nicht wo du das einsetzt

    mit dem Code funktionierts bei mir auf allen Geräte.
    Kannst du mal deinen (falls ausgewählt) Standardbrowser auf dem Handy zurücksetzen und nochmals probieren?


    Hast du mal in Logcat geschaut ob irgendwas interessantes ausgeben wird?

    Zitat

    Hi,


    wenn du möchtest das das "drehende Rädchen" vom Thread gesteuert wird musst du wie killphil75 schon sagte mit einem Handler arbeiten.


    mfg Titus


    Jein, wenn du den ProgressDialog als drehendes Rad verwendest must du ja nur .dismis(); aufrufen, welches laut Doku auch aus einem Nicht-UI Thread aufgerufen werden darf.


    Gruss
    antifish

    Dies könntest du immernoch mit dem Ansatz der von mir gezeigtem Code lösen (dem Singleton Downloader).
    Anstatt denn Listener zu setzen müsste dein Downloadthread einfach eine "Activity" zugewiesen bekommen auf welcher er denn Dialog anzeigen kann. Du müsstest dann einfach bei jedem Activity Wechsel dem Downloader die aktuelle Activity mitteilen.


    Also eigentlich suche ich nach wie vor nur nach einer Möglichkeit, nach erfolgreichem Download aller RSS/XML Dateien im Hintergrund einen Dialog anzuzeigen - unabhängig der aktuellen Activity. +sigh+

    hallo killphil,


    im moment löse ich das mit der skalierung so:
    Meine Bilder sind alle auf eine maximale Grösse von 1280 skaliert (normalerweise die höhe da es alles portrait sinds)
    Beim starten des Puzzles vergleiche ich das Seinenverhältnis des Gerätebildschirms mit dem Seitenverhältnis des Bildes und skaliere dann das Bild so dass die eine Seite (Höhe oder Breite, je nach Seitenverhältnis) immer passt und die andere zu gross es, aber das Bild dann das Format des Gerätedisplays hat. Danach Teile ich in gleich grosse zweile wischen 95 und 115pixel, je nach dem was am besten geht um möglichst wenig "leere" fläche zu erhalten.


    gruss
    antifish

    Ich hätte mal eine technische Frage, weil ich hier auch noch eine Puzzle rumliegen habe und das mehr so als Pausenspiel bei einer anderen App mit beilegen wollte, deswegen ist es mehr oder weniger halbfertig. (Puzzeln geht, nur das Menü ect fehlt noch)


    Wie löst du das Problem mit der Skalierung der Auflösung auf unterschiedlichen Geräten ? Größere/Kleinere Teile ? Mehr/Weniger Teile ?

    Hallo Lucas,


    okay vielleicht hab ich auch dein Problem noch nicht ganz verstanden :)
    Für welche Android Version entwickest du?
    Seit denn neuern Versionen ist es ohne Umweg sowieso nicht mehr möglich Internet / Netzwerk Funktionen im GUI Thread aufzurufen ohne dass die App abstürzt (NetworkOnMainThreadException).
    Also eigentlich dürfte dein GUI nicht blockieren, ausser du meinst mit blockiern was anderes?
    Wenn du dein Download Code in den SingletonDownloader in die run() Methode packst dann blockiert am GUI überhaupt nix!


    Du kannst dir sonst mal die (sexistische 8) ) Sexy Jigsaw App von mir anschauen, die lädt im Hintergrund auch Bilder herunter, und es ist egal wie lange das dauert, ob Minuten oder Stunden, die App läuft flüssig weiter.


    Gruss
    antifish

    Hat sich noch ein Fehler eingeschlichen,
    Zeile 34 im SingletonDownloader müsste natürlich mThread.start(); sein


    Hallo Lucas,


    da gibt es verschiedene Ansätze. Du könnest deine App auch umbauen auf Fragmente und mit nur einer Activity arbeiten aber da währe der Aufwand wohl zu gross.


    Ich würde das mit einem Downloader realisieren der als Singleton gebaut ist, einen Download Thread enthält und dem man einen Listener für Progressupdate etc setzen kann. Dann wird immer der aktuelle Listener updatet und du kannst dich beim Activity wechsel wenn gewünscht als Listener registrieren. Hatte gerade Lust und hab dir was aus meinen Codes rausgesucht, hilft dir vielleicht :) Ist halt auf die Basics zusammengekürzt, sonst einfach fragen...


    Der Downloader und eine Activity findest du im Anhang.


    Gruss
    antifish

    Danke :)


    Nein, sind halt einfach Bilder aus meiner Sammlung aus diversen Quellen aus dem Netz.
    Das werde ich auch mal prüfen müssen bevor die App in den Market geht.
    Hast du zufälligerweise schon Erfahrungen was das anbelangt?


    Gruss
    antifish

    Hallo zusammen,


    ich möchte in nächster Zeit meine erste App als kostenpflichtige Variante im Android Market einstellen.
    (Jaja ich weiss es gibt schon x1000 dieser Apps, meistens Gratis, aber man kanns ja mal versuchen :)


    Sexy Jigsaw
    Bilder Puzzle mit hübschen Frauen :D


    Features:

    • Simples, flüssiges GUI
    • Kein SPAM / Notifications / Werbung
    • Kleiner Helfer zuschaltbar
    • 5 Bilder im .APK, über 60 weitere gratis als In-App Download
    • Reguläre Updates mit noch mehr gratis Bildern
    • Export aller gelösten Rätselbilder in eigene Gallerie
    • Läuft unter Android 4.0+


    Weiter unten findet ihr ein Downloadlink zur APK einer Betaversion die für 10Tage ab heute lauffähig
    ist.
    Über Kommentare / Hinweise / Tipps / Verbesserungsvorschläge würde ich mich freuen.



    PS: Falls wirklich keiner die App kaufen wird, werde ich sie halt gratis verteilen, werde sie dann auch hier mal mit "unendlicher" Laufzeit hochladen.



    Gruss
    antifish


    DOWNLOAD .APK



    [Blockierte Grafik: http://sexyjigsaw.nibdev.ch/screenshots/1-720.jpg] [Blockierte Grafik: http://sexyjigsaw.nibdev.ch/screenshots/2-720.jpg] [Blockierte Grafik: http://sexyjigsaw.nibdev.ch/screenshots/3-720.jpg] [Blockierte Grafik: http://sexyjigsaw.nibdev.ch/screenshots/4-720.jpg] [Blockierte Grafik: http://sexyjigsaw.nibdev.ch/screenshots/5-720.jpg] [Blockierte Grafik: http://sexyjigsaw.nibdev.ch/screenshots/6-720.jpg



    Das ist leider in Android gar nicht so einfach, entweder du verlgleichst halt
    Date1.getYear(), getMonth() und getDay() jeweils mit Date2,
    oder du verwendest DateUtils aus den apache commons lang library. Leider ist das in der abgespeckten Verison von android nicht drin, du kannst aber einfach die Library von hier verwenden:
    http://commons.apache.org/lang/download_lang.cgi



    und dann wie so verwenden:
    DateUtils.isSameDay(date1, date2)


    gruss
    antifish

    Schau dir mal die Info zu surfaceHolder.lockCanvas() an, da steht dass wenn du NULL zurückbekommst deine Surface entweder nicht editierbar ist, oder noch nicht erstell (was bei dir der Fall ist in Zeile 69) und man soll "surfaceCreate" callback verwenden, welches du ja schon im Code hast.
    Lösch mal zeile 68 und schieb zeile 69+70 ins "surfaceCreated"


    Gruss
    antifish