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:
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.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.neuer_eintrag);
final DataBaseHelper db = new DataBaseHelper(this);
Button speichern = (Button) findViewById(R.id.new_speichern);
speichern.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String datum = findViewById(R.id.datePicker1).toString();
EditText et = (EditText) findViewById(R.id.new_zeit_start);
String zeit_start = et.getText().toString();
et = (EditText) findViewById(R.id.new_zeit_ende);
String zeit_ende = et.getText().toString();
CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);
boolean urlaub = cb.isChecked();
db.open();
insertArbeitstag(datum, zeit_start, zeit_ende, urlaub); //Hier ist das Problem
db.close();
Intent i = new Intent(getApplicationContext(), Startseite.class);
startActivity(i);
}
});
Alles anzeigen
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