Daten nach Click auf "Speichern"-Button verarbeiten

  • Hi zusammen!
    Bin seit kurzem auch Android Nutzer und bin gerade dabei mir eine ganz simple Arbeitszeiterfassung zu erstellen um mich etwas in die Materie einzuarbeiten. Leider bin ich Java mäßig nicht wirklich fit.
    Zu meinem eigentlichen Problem:
    Ich habe eine classe NeuerEintragActivity. Diese ruft ihr Layout auf mit verschiedenen Eingaben. DAs funktioniert so weit einwandfrei.
    Beim Klick auf den Speichern Button sollen jetzt die eingegebenen Daten in eine vorhandene Datenbank übernommen werden. Dafür habe ich in einer extra Klasse (DataBaseHelper)folgende Funktion:

    Java
    public long insertArbeitstag(String datum, String zeit_start, String zeit_ende, boolean urlaub) 
        {
            ContentValues initialValues = new ContentValues();
            initialValues.put(KEY_DATUM, datum);
            initialValues.put(KEY_ZEIT_START, zeit_start);
            initialValues.put(KEY_ZEIT_ENDE, zeit_ende);
            initialValues.put(KEY_URLAUB, urlaub);
            return db.insert(DATABASE_TABLE, null, initialValues);
        }


    Diese funktioniert auch, wenn ich sie manuell mit Daten füttere. Nur leider ruft er mir die Funktion trotz import der DataBaseHelper Klasse beim verarbeiten der Daten nicht auf. Die Methode sei angeblich nicht definiert meckert er.


    Kann mir einer von euch vllt. einen Tip geben wie ich das möglichst elegant lösen kann? Habs schon über *package-name*.DataBaseHelper.insertArbeitstag(...) versucht. Da meckert er aber, dass die Methode nicht static ist.


    Danke für die Mühe,


    Michi

  • Hi,


    also ich versteh nicht ganz wo das Problem ist.
    Möchtest du die Funktion insertArbeitstag(....)die innerhalb der Klasse DataBaseHelper steht aufrufen?
    Also quasi so:


    Java
    class DataBaseHelper{
    public long insertArbeitstag(....)
    }
    
    
    class Main{
    DataBaseHelper db = new DataBaseHelper(this);
    db.insertArbeitstag(...); 
    }


    Oder versteh ich da falsch?
    Wozu ist eingtlich die Return Anweisung in der InsertArbeitstag?


    Ach so und apropos elegant schreibe diese Anweisungen lieber vor die setOnClickListener Methode:

    • EditText et = (EditText) findViewById(R.id.new_zeit_start);
    • EditText et2 = (EditText) findViewById(R.id.new_zeit_ende);
    • CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);


    Weil sonst musst die komplette XML jedesmal eingelesen werden wenn man den Speicher Button drückt.
    Außerdem solltest du keine Variablen "doppelt" Belegen (ist einfach kein guter Still)

    Code
    EditText et = (EditText) findViewById(R.id.new_zeit_start);
    String zeit_start = et.getText().toString();
    et = (EditText) findViewById(R.id.new_zeit_ende); //Sowas führt meistens zu Fehlern die sehr schwer zu finden sind


    Mfg Titus

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!