Beiträge von herrm_no

    Hey,


    ich hab nun meine App geschrieben und es funktioniert eigentlich alles auf meiner Simulation.
    Nun ist mir allerdings aufgefallen, dass bei einer neu Installation auf einer anderen Hardware meine Default Datenbank ja gar nicht dabei ist.
    (kann ja auch gar nicht ). Ich möchte gerne eine default Datenbank mit verschiedenen einträgen dem User bei der Installation mitgeben.
    Diese sollte er dann auch je nach Wunsch bearbeiten dürfen. Also Zeilen hinzfügen usw.


    Was muss ich da tun um diese Default Datenbank der App mit zur Verfügung zu stellen.



    Gruß

    Ok, das mit der eigenen Funktion hab ich mir eh schon überlegt. Werd ich wahrscheinlich auch so umsetzen. Aber trotzdem interessiert mich noch wie ich einen Knopfdruck für einen Eintrag im Menü per Software ausführe. Ich hab in VB schon größere Programme geschrieben und auch mit komplexeren Datenbanken aber irgendwie ist es dort für mich bis jetzt noch logischer aufgebaut. Aber ich bin ja immer bereit zu lernen, ansonsten hätte ich mich nicht an Java und Android rangetraut. Jede Info die ich bekomme (Bücher oder Foren) helfen etwas mehr zu verstehen.

    Hallo
    also die Problem hier wollen einfach nicht aufhören. Ich hab eine Idee und denke das geht ruckzuck. (zumindest war das nie ein Problem in VisualBasic) aber hier in Java/Android
    ist das immer noch für mich ein Kampf.


    Ich habe ein Menü mit verschiedene Punkten -Speichern,Update,Vorwärts,Rückwärts usw. (bezieht sich auf eine Datenbank)
    Das funktioniert jetzt auch alles super.
    Nun würde ich aber gerne z.B. den Rückwärts (Knopf) einmal beim Start per Software drücken/ausführen. (Damit meine Anzeigen auf der MainActivity bei Datenbank1 beginnt. Aktuell ist alles leer, oder bei Listen auf Pos 1, beim Start.
    Wenn es ein normaler imageButton platziert auf der MainActivity ist habe ich kein Problem damit nur bei einem Menü funktioniert das nicht.
    Ich habe es mal mit callOnClick und performClick versucht.
    Beim ausführen bleibt der Android Monitor hier stehen und das Programm bricht ab. Der Android Monitor zeigt mir zwar die Zeile aber nicht den exakten Grund.
    Ich hab im Internet schon gesucht, aber irgendwie hat das alles nicht funktioniert.
    Gruß

    Code
    Boolean a = findViewById(R.id.menu_backward_data).callOnClick();
     Boolean a = findViewById(R.id.menu_backward_data).performClick();

    hier mal noch onOptionsItemSelected. Der springt dann in eine andere Class. Das funktioniert ja aber auch perfekt wenn ich irgendeinen Knopf manuell drücke.


    Hey zusammen.


    wie schon bei meinen letzten Fragen bin ich immer noch bei der Datenbank
    Es funktioniert auch alles recht gut.
    Ich weis auch wie es funktionert eine Zeile einer Datenbank zu löschen , wenn ich die ID z.B. in einer textbox hinterlege bzw eingebe.
    Nun aber meine Frage.
    Ich kann bei meiner Datenbank nach vorne und rückwärts navigieren (mit 2 Buttons) und der Inhalt wird dann auf dem Display durch Textfelder, Checkboxen usw. angezeigt
    Nun würde ich aber gerne z.B. die gerade sichtbare Zeile per Button in der Datenbak löschen
    Wie bekomme ich nun die ID der aktuellen Datenbankzeile heraus ohne diese vorher in eine Textbox zu schreiben oder zu hinterlegen.
    Ist das überhaupt möglich?
    Ich hab schon viel gesucht und probiert, aber nichts gefunden (vielleicht auch nur die falschen Suchbegriffe einegegeben)
    Gruß

    Hey nochmal,
    man du bist echt der Hammer. Ich glaube habe 1000 mal drauf geschaut und einfach nicht den Unterschied gesehen.


    Erst hat es nicht funktioniert und ich war schon total am Ende. Doch dann ist mir eingefallen das alte Datenbankfile erst mal wieder zu löschen und dann, ja dann hat es funktioniert.
    Man man man ich bis so happy.


    Super super super vielen Dank.
    Wir Bayern müssen halt zusammen halten :)
    :thumbup: :thumbup: :thumbup: :thumbup: :thumbup:

    nein, das ist dann falsch rüber gekommen, es geht nie. Nur wenn ich unter COL20 bleibe. Dann funktioniert es, egal was ich mit denen (unter20) anstelle.


    Also das mit der Anzeige PUT im Debugger weis ich jetzt nicht wie das geht.
    Ich seh im Debugerjeweils en ADD mit anderer Zahl


    und wenn ich die Variable anzeigen lasse mValues . Das mit size = 19 ist korrekt aber danach wie immer Result -1. hier sieht man auch das die Werte bei 0,1,2 eigentlich nicht die Reihenfolge sind wie sie hinzugefügt wurden (komisch)






    ab und zu bekomme ich diese Meldung wenn ich die COL20 und mehr verwende. Das habe ich darunter (also wenn ich nur bis COL19 verwende) noch nicht bemerkt.
    Das hab ich im Internet auch schon ein wenig gegoogelt. Die häufigste Lösung hat bei mir aber nichts gebracht (Build Clean Project und file settings disable Instant Run)

    Also das mit COL Änderung kommt daher weil ich was getestet habe.
    Also dann hab ich das mit dem Text richtig gemacht. Leider hat es aber nicht geholfen.
    Der Einzige nachteil bei Eingabe des Textes "DESCRIPTION" ist , das mir das System dabei keinen Vorschlag macht. Tippe ich COL ein , dann schlägt Android Studio alle anderen COL automatisch vor.


    Oder meinst du auch noch, das ich die Zeile bei der Definition
    public .... COL2 = "LEFTHANDPLAYER" auch in LEFTHANDPLAYER = "LEFTHANDPLAYER" umändern soll.
    Ich dachte COL1,COL2 usw. nimmt man immer her.?


    (wird warschienlich aber nicht die Lösung von meinem Problem sein)


    Code
    public static final String DATABASE_NAME = "database.db";
        public static final String TABLE_NAME = "database_table";
        public static final String COL1 = "_ID";
        public static final String COL2 = "LEFTHANDPLAYERA"; //Button
        public static final String COL3 = "LEFTHANDPLAYERB"; //Button
        public static final String COL4 = "FILTER1"; //Spinner
        public static final String COL5 = "FILTER2"; //Spinner

    Schreibt man das dann so ?

    Code
    contentValues.put(COL17,2);
    contentValues.put(COL18,1);
    contentValues.put("DESCRIPTION","WAS");
    contentValues.put("SHORTDESCRIPTION","WO");


    und der Text muss identisch sein zu der static definition ?

    Code
    public static final String COL16 = "BALLSHOTLISTTABLE6PLAYERA"; //Spinner
    public static final String COL17 = "BALLSHOTLISTTABLE6PLAYERB"; //Spinner
    public static final String COL18 = "TRAJECTORYTABLE1"; //Seekbar
    public static final String COL19 = "DESCRIPTION"; // Textbox
    public static final String COL20 = "SHORTDESCRIPTION"; // Textbox

    Wenn das so stimmt, dann hat es auch nicht geholfen

    Hi
    also das war es auch nicht. Ich hab mal überall zu jeder Zeile den Text oder Integer direkt so wie du vorgeschlagen hast eingegeben.
    Das hat auch nicht funktioniert.
    Ich glaube das es nicht an den Inhalt ankommt, sondern genau ab dieser Zeile die Datenbank oder was auch immer Probleme macht.
    Also COL20. Ich hab auch alles geändert, damit anstatt ein text ein Integer in der Zeile 20 steht. Das ist auch egal.
    Ich krieg ja leider vom System auch keine Meldung was das Problem ist nur der Returnwert = -1;
    Was für Möglichkeiten hab ich denn noch den Fehler zu finden ?
    Gibt es irgendwo einen Counter der die maximale Anzahl derColums festlegt ?


    Gruß

    Hier bitte Schön, aber die Tabelle selbst bildet ja den String ab, Die tabelle wird ja aus dem String erzeugt, deswegen dachte ich da ist es besser zu sehen.
    hier der String + zusaätzliche Zeilen

    Hallo
    ich hab da ein komisches Problem und weis nicht was da falsch läuft.
    result läuft bei mir immer auf -1 wenn ich alle COL* in die db übertragen möchte.
    Nur bis "COL19" (Rest auf Comment) funktioniert alles Perfekt. Ab COL20 geht result auf -1.
    Es liegt nicht am Inhalt von COL20 - Trajectory1. Ich hab da schon einiges rumprobiert, aber immer ab COL20 result = -1
    Wie krieg ich den Raus warum er den Wert -1 bekommt bzw. was läuft denn da verkehrt.
    Das bei den Integer Daten alles auf "0" bzw. String "" (COL 18,19) steht ist auf jeden Fall schon mal nicht der Grund:
    Gruß

    Code
    long result = db.insert(TABLE_NAME,null,contentValues);
            if (result == -1)