Hallo zusammen,
ich bin neu hier im Forum und auch neu in der Android/Java Programmierung, habe erst vor einigen Tagen angefangen.
Nun zu meiner Frage. Ich habe in Andoid Studio mal eine einfache App geschrieben, die mir Daten in einer Datenbank speichern soll.
Diese sollen erstmal auch garnicht angezeigt werden, da ich mich nach und nach genau mit den einzelnen Schritten befassen will. So also auch hier.
Ich würde nun gerne wissen, wo überhaupt meine AppDaten also auch meine kompilierten packages und meine Datenbanken auf dem Gerät gespeichert werden.
Gibt es auch eine Möglichkeit mir die Datenbank über das Handy direkt auszugeben? Also z.B. in einer Konsole
>sqlite testDB.db
>SELECT * FROM testTable
Oder irgendwie in der Richtung?
Hier mal mein Code, den ich auch auf meinem Device ausführe.
package de.moser.datenbanktest;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
private Button btnSubmit;
private EditText editName;
private EditText editNachname;
private EditText editAlter;
private String strNachname;
private String strName;
private String strAlter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.btnSubmit = (Button) findViewById(R.id.btnSubmit);
this.editName = (EditText) findViewById(R.id.editName);
this.editNachname = (EditText) findViewById(R.id.editNachname);
this.editAlter = (EditText) findViewById(R.id.editAlter);
}
public void ButtonKlick(View v){
strName= editName.getText().toString();
strNachname= editNachname.getText().toString();
strAlter = editAlter.getText().toString();
//Datenbank-Objekt erzeugen (Constructor legt neue Datenbank an)
DatenbankErstellen neueDatenbankErstellen;
neueDatenbankErstellen = new DatenbankErstellen(this);
//Neuen Datensatz in die Datenbank zufügen
neueDatenbankErstellen.InsertNewRecord(strName,strNachname,strAlter);
}
}
Alles anzeigen
package de.moser.datenbanktest;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatenbankErstellen {
//DB Name und Version
private static final String DB_NAME = "TestDB.db";
private static final int DB_VERSION = 1;
//DB Splaten
private static final String TABLE_NAME = "test";
private static final String COLUMN_ID = "_id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_NACHNAME = "nachname";
private static final String COLUMN_ALTER = "alter";
//String für DB-Erstellung zusammenbauen
private static final String CREATE_DB =
"CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY, " +
COLUMN_NAME + " TEXT " +
COLUMN_NACHNAME + "INTEGER ," +
COLUMN_ALTER + "INTEGER )";
//Instanz der gekapselten Klasse
InnerDatenbankErstellen innerDatenbankErstellen;
private SQLiteDatabase WritableSqLiteDatabase;
public DatenbankErstellen(Context context) {
innerDatenbankErstellen = new InnerDatenbankErstellen(context);
WritableSqLiteDatabase = innerDatenbankErstellen.getWritableDatabase();
}
public long InsertNewRecord(String name, String nachname, String alter) {
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, name);
values.put(COLUMN_NACHNAME, nachname);
values.put(COLUMN_ALTER, alter);
return WritableSqLiteDatabase.replace(TABLE_NAME, null, values);
}
private class InnerDatenbankErstellen extends SQLiteOpenHelper {
public InnerDatenbankErstellen(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_DB);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXIST " + TABLE_NAME);
onCreate(db);
}
}
}
Alles anzeigen
Danke schomal
übrigens, den OnClick-Handler habe ich direkt im XML defininert.
Gruß Jonas