Beiträge von nono124

    Was du in der actualDaysRemain Variablen hast ist der Index der Spalte und nicht der inhalt der von der Zelle. Also nicht das Datum.


    Da bringst du immer noch alles durcheinander? Hatten wir doch schon alles mal.


    Eigentlich kennst du ja deine Tabelle und weißt auch wo in welcher Spalte deine Werte sind. Also könntest du auch gleich die Spalten Nummer beim Zellen auslesen benutzen.


    getColumnIndex gibt dir die Spalten Nummer nicht den Zellen Inhalt.

    Hallo
    Ob der alte AMD ausreichend ist, ist schwer zu sagen.


    Den Haxm kannst du mit einem AMD nicht benutzen auch die Hyper-V bringt dir nichts.
    Bei deinem Rechner(AMD) musst du ohne Hardwareunterstützung und Virtualisierung arbeiten.
    Haxm ist nur für Intel CPUs.


    Dafür musst du glaube ein „armeabi-v7a“ Image nehmen auf jedenfalls kein 64Bit.
    Nur wird der Start des Emulator sehr lange dauern >10 min bestimmt.


    Ich würde es mal mit einen anderen alternativen Emulator versuchen.


    Zu deinem Handy hast du auch die Usb Treiber installiert?


    Auf dem Handy musst du ach auch Das USB Debugging einschalten. Deaktiviere es mal und schalte es wider ein.
    Auch die Freigabe für den Pc mal löschen und wieder einschalten.


    Viel Erfolg.

    Zitat

    Warum ist denn while(c!=0) eine endlos schleife?


    Dann überlege mal was c ist ein Objekt. Das Objekt ist nicht „null“
    Innerhalb der Schleife wird die Instanz des Objektes nicht verändern oder sogar gelöscht.
    Geht nie auf „null“ somit ist die While Bedingung immer true. Wird nie beendet.


    Der Code von dir sollte gehen ich würde es etwas kürzer machen.


    Code
    if (c.getCount() != 0){
        c.moveToFirst();
        do {
    			...
    			
        } while (c.moveToNext());
    }

    Hallo
    Erstmal solltest du den Code in den Code Block als Text posten, und nicht als Bild.
    Ohne Zeilen Nummer ist es schwerer dir zuerklären wo du was falsch machst.



    While (c !=null)


    Ist eine endlos schleife.



    Die Id ist normalerweise ein Long.

    Hallo ich würde das etwas anders furmuliren.


    Ein Service ist erstmal ein Prozess der meistens im hinderund läuft, und keine Bildschirm Ein und Ausgaben macht. Der läuft in einem Thread der nicht auf den Main oder UI Thread zugreift. Hat auch kein Layout. Ist in etwas mit einem Dienst vergleichbar.


    Deshalb macht es für mich keinen Sinn einen Button in einen Service zu erstellen und ein onClicklister im Service ist auch sinnlos.
    Lister in Service gibt es schon nur meistens für andere Aufgaben nicht für Click Event.
    Zb um Ergebnisse aus der DB abzufragen.


    Das mit den Binder ist falsch was gesagt wurde.
    Das ist ein ungebunder freier Service.
    Er ist nicht an irgentetwas gebunden kann zb auch weiter laufen wenn die activity die ihn gestartet hat beendet wird. Bei einem gebunden Service der zb an eine activity gebunden ist würde der Service beendet wenn die activity zerstört wird.


    Mit Null in der onbind Methode als Rückgabe Wert ist ein Unbound Service.



    Zu den Themen klick listner mit interface oder direckt. Ist geschmackssache Sache.
    Was auch nicht so stimmt ist. Das es bei der interface Variante nur einen Button geben kann.
    Alle Events von den Button kommen in der einen Klicklistner Methode vom Interface an dort musst du dann eine Fall unterscheidung machen.
    Zb mit swich case.
    Ich bevorzuge dies Variante da es für mich übersichtlicher ausschaut bei vielen button.
    Aber das ist jedem seine Sache.


    Nur die Varianten mit onclick im XML Layout würde ich nicht machen. Das ist dann mit Fragmenten auch wider nicht mehr möglich. Also ambesten gar nicht erst angewöhnen auch wenn das noch in vielen Codes im Netz noch so ist.


    Thema Service
    https://www.big-app.de/alles-zu-services-unter-android/

    Hallo das ist eigentlich einfach erklärt.
    Es werden immer die Nachbar Fragmente vor geladen, da mit sie beim Swipe auch schon zur Verfügung stehen . Es gibt ja einen Moment wo beider Fragmente zur hälfte sichtbar sind.
    Also muss das Layout schon beim Swipe schon fertig geladen sein .das ist die Eigenart des Viewpager. Wenn du in Fragment 2 bist hast du zwei Nachbarn 1 und 3.



    Beim Start Fragment 1 gibt es nur einen Nachbarn.
    Bei 3 gibt es auch nur 2 als Nachbar.




    Die Destroy Methode wird nicht aufgerufen erst beim verlassen des Fragments.




    Zitat

    Kann ich das verhindern, dass automatisch das Fragment die Methode onDestroyView() aufruft? Also zusammengefasst: Ist es möglich das alle 3 Fragments gleichzeitig ins Leben gerufen werden und auch alle lebendig bleiben

    nein , aber die onDestroyView() wird nur von dem Fragment aufgerufen von dem du kommst.

    Hallo


    So geht das mit Sicherheit nicht.



    Du hast eine Daten Kasse willst die auch füllen. Tust du aber nicht.



    Was du hier machst ist nur einen normalen String erstellenzb. 2020224
    val heute = auswahlJahr.toString()+auswahlMonat.toString()+auswahlTag.toString()




    daraus kannst kein Json Objekt machen.





    Dann willst du aus deinem vermeintlichen Json Objekt lesen. Kann nicht gehen den du hast kein Objekt nur einen String in der form „2020224“


    val heutigesDatum = Gson().fromJson(heute,dailyTask::class.java )
    Ein Objekt von Typ Json hast du nicht "heute" ist nur ein einfacher String. Vorallen nicht in der Json form .Und deine Kalasse ist lehr.



    also in etwa so


    Code
    val heute =dailyTask(auswahlJahr.toString(),auswahlMonat.toString(),auswahlTag.toString())
    val heutigesDatum = Gson().toJson(heute)
    
    
    heuteAufgabe.text = Gson().fromJson(heutigesDatum,dailyTask::class.java ).toString()




    Um aber aus deinem Json Objekt einen sinnvollen String zum Anzeigen zu bekommen, solltest du dir noch eine noc eine Methode schreiben.



    Im Übrigen verstehe ich nicht warum du den Umweg über Json machst.


    Kannst ja direkt auf deine Daten Klasse zugreifen.

    Vielleicht wird es am WE.


    Wir dürfen ja jetzt nicht mehr raus.
    Ich muss aber weiter zur Arbeit gehen.


    Kommplett lwerde ich es nicht machen vielleicht einen Weg aufzeichnen.
    Du willst ja auch noch was machen und sagen können das habe ich gemacht. :)

    An den permission alleine wird das nicht. Liegen.


    Du musst sicherlich das installieren selber anstoßen auslösen.
    In dem du zb einen intent an den Paket installiert schickst mit der runtergeladenen Datei.


    Dazu müsstest du den Download Manager überwachen wenn er fertig ist und dann erst die instalation auslösen. Dafür wist du die permission für den installer und auch für den externen Speicher brauchen.


    Das ist ab API 29 auch schwieriger geworden. Zugriff auf den externen Speicher und Paket installer.


    Bei mir ist es so wenn der Download fertig ist kann ich in der notifications drauf klicken und dann will Android die Datei öffnen und sagt das er sie nicht öffnen kann.


    Das logcat habe ich nicht dazu angesehen. Im zu sehen was er für einen Fehler bringt.


    Könntest ja deine notification verändern und darüber eine Installation anbieten.


    Oder der Download in einen Thread und danach die Installation anbieten und auslösen.

    Bei Datenbanken ist es so.
    Wenn du einen neuen Datensatz erstellst zb mit der insert Methode. Wird immer eine interne ID vergeben. Die bekommst du auch als Rückgabe Wert von der insert Methode.
    Und genau diese ID brauchst du wenn du den Datensatz updaten willst.


    Die DB vergibt immer eine neue interne ID. Nie die gleiche.


    Wenn du nun für deine Spalte ID auch das PRIMARY KEY AUTOINCREMENT betutzt ist deine Spalte immer gleich mit der internen ID.


    Es ist auch so das wenn du einen Datensatz löscht wird die alte ID nicht wider benutzt.

    Hallo im Moment habe ich da keine direckte Idee.


    Hast du denn die permission in deiner app getzt?
    Wenn du willst kannst du mir ja mal den Quellcode schicken.


    Vielleicht habe ich am we mal Zeit es mir anzuschauen. Kann aber nichts versprechen.


    Wie war das unter älteren Android Versionen?
    Ging es da?

    Hallo habe es erhalten.


    Deine Apk wird ordentlich heruntergeladen. Und befindet sich danach in dem Ordner


    /storage/Emuleted/0/Android/data/de.lottoapp/files/download/


    Dort kannst du auch von Hand hingehen und die apk installieren.


    Das ist der Standard Download Ordner den deine Webview anlegt.


    Das du die Datei nicht starten ausführen kannst liegt vermutlich an fehlenden Permission.
    android.permission.INSTALL_PACKAGES.
    Der User muss aber das Installieren von fremdenalso nicht von GoolePaly geladen APK erlauben oder schon erlaubt haben.


    Zum Zeitpunkt der Installation befindest du dich ja noch in deiner App und willst von dort aus ein Paket installieren.
    Dazu bauchst du auch die Rechte.