Spinner Inhalt in SQLite Datenbank speichern

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Spinner Inhalt in SQLite Datenbank speichern

    Hi Leute,

    ich habe angefangen eine App zu programmieren. Bin also relativ neu in diesem Gebiet.
    Mein Problem liegt darin, dass ich einen Spinner Inhalt nicht in meine Datenbank speichern kann.

    In der Activity "neuerEintrag" kann der User Daten eingeben und den Spinner verwenden. Das speichern in dem EditText Feld funktioniert.
    So sieht der Quellcode des Spinners aus.

    Java-Quellcode: neuerEintrag

    1. ArrayAdapter<CharSequence> groesse1_spinner = ArrayAdapter.createFromResource(this, R.array.groesse_biotonne, android.R.layout.simple_spinner_item);
    2. groesse1_spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    3. groesse1.setAdapter(groesse1_spinner);
    4. groesse1.setOnItemSelectedListener(this);
    5. this.groesse1.getSelectedItem().toString();
    6. eintraege.setGroesse1(groesse1.toString());



    Java-Quellcode

    1. package de.androidnewcomer.bonitierungsverfahren;
    2. import java.util.Calendar;
    3. public class Eintraege {
    4. private long id;
    5. private String kiez;
    6. private String gebietsstrasse;
    7. private String strassenzug;
    8. private String hausnummer;
    9. private boolean hausnummer_gerade;
    10. private boolean hausnummer_ungerade;
    11. private String bemerkung;
    12. private Calendar date;
    13. private String muellplatz;
    14. private String groesse1;
    15. public Eintraege(){
    16. this(null, null, null, null, false, false, null, null, null, null);
    17. }
    18. public Eintraege(String kiez) {
    19. this(kiez, null, null, null, false, false, null, null, null, null);
    20. }
    21. public Eintraege(final String kiez, final String gebietsstrasse, final String strassenzug, final String hausnummer, final boolean hausnummer_gerade, final boolean hausnummer_ungerade, final String bemerkung, final Calendar date,
    22. final String muellplatz, final String groesse1) {
    23. this.kiez = kiez;
    24. this.gebietsstrasse = gebietsstrasse;
    25. this.strassenzug = strassenzug;
    26. this.hausnummer = hausnummer;
    27. this.hausnummer_gerade = hausnummer_gerade;
    28. this.hausnummer_ungerade = hausnummer_ungerade;
    29. this.bemerkung = bemerkung;
    30. this.date = date;
    31. this.muellplatz = muellplatz;
    32. this.groesse1 = groesse1;
    33. }
    34. public long getId() {
    35. return id;
    36. }
    37. public void setId(long id) {
    38. this.id = id;
    39. }
    40. public String getKiez() {
    41. return kiez;
    42. }
    43. public void setKiez(String kiez) {
    44. this.kiez = kiez;
    45. }
    46. public String getGebietsstrasse() {
    47. return gebietsstrasse;
    48. }
    49. public void setGebietsstrasse(String gebietsstrasse) {
    50. this.gebietsstrasse = gebietsstrasse;
    51. }
    52. public String getStrassenzug() {
    53. return strassenzug;
    54. }
    55. public void setStrassenzug(String strassenzug) {
    56. this.strassenzug = strassenzug;
    57. }
    58. public String getHausnummer() {
    59. return hausnummer;
    60. }
    61. public void setHausnummer(String hausnummer) {
    62. this.hausnummer = hausnummer;
    63. }
    64. public String getBemerkung() {
    65. return bemerkung;
    66. }
    67. public void setBemerkung(String bemerkung) {
    68. this.bemerkung = bemerkung;
    69. }
    70. public Calendar getDate() {
    71. return date;
    72. }
    73. public void setDate(Calendar dueDate) {
    74. this.date = date;
    75. }
    76. public boolean isHausnummer_gerade() {
    77. return hausnummer_gerade;
    78. }
    79. public void setHausnummer_gerade(boolean hausnummer_gerade) {
    80. this.hausnummer_gerade = hausnummer_gerade;
    81. }
    82. public boolean isHausnummer_ungerade() {
    83. return hausnummer_ungerade;
    84. }
    85. public void setHausnummer_ungerade(boolean hausnummer_ungerade) {
    86. this.hausnummer_ungerade = hausnummer_ungerade;
    87. }
    88. public String getMuellplatz() {
    89. return muellplatz;
    90. }
    91. public void setMuellplatz(String muellplatz) {
    92. this.muellplatz = muellplatz;
    93. }
    94. public String getGroesse1() {
    95. return groesse1;
    96. }
    97. public void setGroesse1(String groesse1) {
    98. this.groesse1 = groesse1;
    99. }
    100. }
    Alles anzeigen


    Soweit sogut. Jetzt ist die Frage wie ich den Spinner Inhalt in die Datenbank bekomme.

    Ich hoffe ihr könnt mir bei meinem Problem helfen.
  • Die Datenbank sieht aktuell so aus.

    Java-Quellcode: EintraegeDatabase

    1. package de.androidnewcomer.database;
    2. import android.content.ContentValues;
    3. import android.content.Context;
    4. import android.database.Cursor;
    5. import android.database.sqlite.SQLiteDatabase;
    6. import android.database.sqlite.SQLiteOpenHelper;
    7. import java.util.ArrayList;
    8. import java.util.Calendar;
    9. import java.util.List;
    10. import de.androidnewcomer.bonitierungsverfahren.Eintraege;
    11. public class EintraegeDatabase extends SQLiteOpenHelper {
    12. public static EintraegeDatabase INSTANCE = null;
    13. private static final String DB_NAME = "BONITIERUNG";
    14. private static final int VERSION = 10;
    15. private static final String TABLE_NAME = "daten";
    16. public static final String ID_COLUMN = "ID";
    17. public static final String KIEZ_COLUMN = "kiez";
    18. public static final String GEBIETSSTRASSE_COLUMN = "gebietsstrasse";
    19. public static final String STRASSENZUG_COLUMN = "strassenzug";
    20. public static final String HAUSNUMMER_COLUMN = "hausnummer";
    21. public static final String HAUSNUMMER_GERADE = "hausnummer_gerade";
    22. public static final String HAUSNUMMER_UNGERADE = "hausnummer_ungerade";
    23. public static final String BEMERKUNG_COLUMN = "bemerkung";
    24. public static final String DATUM_COLUMN = "datum";
    25. public static final String MUELLPLATZ_COLUMN = "muellplatz";
    26. public static final String GROESSE1_COLUMN = "groesse1";
    27. private EintraegeDatabase(final Context context){
    28. super(context, DB_NAME, null, VERSION);
    29. }
    30. public static EintraegeDatabase getInstance(final Context context){
    31. if(INSTANCE == null){
    32. INSTANCE = new EintraegeDatabase(context);
    33. }
    34. return INSTANCE;
    35. }
    36. @Override
    37. public void onCreate(SQLiteDatabase db) {
    38. String createQuery = "CREATE TABLE " + TABLE_NAME + " (" + ID_COLUMN + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
    39. KIEZ_COLUMN + " TEXT, " +
    40. GEBIETSSTRASSE_COLUMN + " TEXT, " +
    41. STRASSENZUG_COLUMN + " TEXT, " +
    42. HAUSNUMMER_COLUMN + " TEXT, " +
    43. HAUSNUMMER_GERADE + " Text, " +
    44. HAUSNUMMER_UNGERADE + " Text, " +
    45. BEMERKUNG_COLUMN + " TEXT, " +
    46. DATUM_COLUMN + " INTEGER, " +
    47. MUELLPLATZ_COLUMN + " Text, " +
    48. GROESSE1_COLUMN + " Text)"; //Integer?? Position des Spinners speichern und die Position in String umwandeln mit getPosition/toString?
    49. db.execSQL(createQuery);
    50. }
    51. @Override
    52. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    53. String dropTabel = "DROP TABLE IF EXISTS " + TABLE_NAME;
    54. db.execSQL(dropTabel);
    55. onCreate(db);
    56. }
    57. public Eintraege createEintraege(final Eintraege eintraege){
    58. SQLiteDatabase db = this.getWritableDatabase();
    59. ContentValues values = new ContentValues();
    60. values.put(KIEZ_COLUMN, eintraege.getKiez());
    61. values.put(GEBIETSSTRASSE_COLUMN, eintraege.getGebietsstrasse());
    62. values.put(STRASSENZUG_COLUMN, eintraege.getStrassenzug());
    63. values.put(HAUSNUMMER_COLUMN, eintraege.getHausnummer());
    64. values.put(HAUSNUMMER_GERADE, eintraege.isHausnummer_gerade() ? 1 : 0);
    65. values.put(HAUSNUMMER_UNGERADE, eintraege.isHausnummer_ungerade() ? 1 : 0);
    66. values.put(BEMERKUNG_COLUMN, eintraege.getBemerkung());
    67. values.put(DATUM_COLUMN, eintraege.getDate() == null ? null : eintraege.getDate().getTimeInMillis() / 1000);
    68. values.put(MUELLPLATZ_COLUMN, eintraege.getMuellplatz());
    69. values.put(GROESSE1_COLUMN, eintraege.getGroesse1());
    70. long newID = db.insert(TABLE_NAME, null, values);
    71. db.close();
    72. return readEintraege(newID);
    73. }
    74. public Eintraege readEintraege(final long id){
    75. SQLiteDatabase db = this.getReadableDatabase();
    76. Cursor cursor = db.query(TABLE_NAME, new String[]{ID_COLUMN, KIEZ_COLUMN, GEBIETSSTRASSE_COLUMN, STRASSENZUG_COLUMN, HAUSNUMMER_COLUMN, HAUSNUMMER_GERADE, HAUSNUMMER_UNGERADE, BEMERKUNG_COLUMN, DATUM_COLUMN, MUELLPLATZ_COLUMN,
    77. GROESSE1_COLUMN}, ID_COLUMN + " =?",
    78. new String[]{String.valueOf(id)}, null, null, null);
    79. Eintraege eintraege = null;
    80. if(cursor != null && cursor.getCount() > 0){
    81. cursor.moveToFirst();
    82. /* int idIndex = cursor.getColumnIndex(ID_COLUMN);
    83. int idKiez = cursor.getColumnIndex(KIEZ_COLUMN);
    84. int idGebietsstrasse = cursor.getColumnIndex(GEBIETSSTRASSE_COLUMN);
    85. int idStrassenzug = cursor.getColumnIndex(STRASSENZUG_COLUMN);
    86. int idHausnummer = cursor.getColumnIndex(HAUSNUMMER_COLUMN);
    87. int idBemerkung = cursor.getColumnIndex(BEMERKUNG_COLUMN);
    88. long idIND = cursor.getLong(idIndex);
    89. String kiez = cursor.getString(idKiez);
    90. String gebietsstrasse = cursor.getString(idGebietsstrasse);
    91. String strassenzug = cursor.getString(idStrassenzug);
    92. String hausnummer = cursor.getString(idHausnummer);
    93. String bemerkung = cursor.getString(idBemerkung); */
    94. eintraege = new Eintraege(cursor.getString(cursor.getColumnIndex(KIEZ_COLUMN)));
    95. eintraege.setId(cursor.getLong(cursor.getColumnIndex(ID_COLUMN)));
    96. eintraege.setGebietsstrasse(cursor.getString(cursor.getColumnIndex(GEBIETSSTRASSE_COLUMN)));
    97. eintraege.setStrassenzug(cursor.getString(cursor.getColumnIndex(STRASSENZUG_COLUMN)));
    98. eintraege.setHausnummer(cursor.getString(cursor.getColumnIndex(HAUSNUMMER_COLUMN)));
    99. eintraege.setHausnummer_gerade(cursor.getInt(cursor.getColumnIndex(HAUSNUMMER_GERADE)) == 1);
    100. eintraege.setHausnummer_ungerade(cursor.getInt(cursor.getColumnIndex(HAUSNUMMER_UNGERADE)) == 1);
    101. eintraege.setBemerkung(cursor.getString(cursor.getColumnIndex(BEMERKUNG_COLUMN)));
    102. Calendar calendar = null;
    103. calendar = Calendar.getInstance();
    104. calendar.setTimeInMillis(cursor.getInt(cursor.getColumnIndex(DATUM_COLUMN)) * 1000);
    105. eintraege.setMuellplatz(cursor.getString(cursor.getColumnIndex(MUELLPLATZ_COLUMN)));
    106. eintraege.setGroesse1(cursor.getString(cursor.getColumnIndex(GROESSE1_COLUMN)));
    107. // eintraege = new Eintraege(idIND, kiez, gebietsstrasse, strassenzug, hausnummer, hausnummer_gerade, hausnummer_ungerade, bemerkung, calendar);
    108. }
    109. db.close();
    110. return eintraege;
    111. }
    112. public List<Eintraege> readAllEintraege(){
    113. List<Eintraege> eintraege1 = new ArrayList<>();
    114. SQLiteDatabase db = this.getReadableDatabase();
    115. Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
    116. if(cursor.moveToFirst()){
    117. do{
    118. Eintraege eintraege = readEintraege(cursor.getLong(cursor.getColumnIndex(ID_COLUMN)));
    119. if(eintraege1 != null){
    120. eintraege1.add(eintraege);
    121. }
    122. }while(cursor.moveToNext());
    123. }
    124. db.close();
    125. return eintraege1;
    126. }
    127. public Eintraege updateEintraege(final Eintraege eintraege){
    128. SQLiteDatabase db = this.getReadableDatabase();
    129. ContentValues values = new ContentValues();
    130. values.put(KIEZ_COLUMN, eintraege.getKiez());
    131. values.put(GEBIETSSTRASSE_COLUMN, eintraege.getGebietsstrasse());
    132. values.put(STRASSENZUG_COLUMN, eintraege.getStrassenzug());
    133. values.put(HAUSNUMMER_COLUMN, eintraege.getHausnummer());
    134. values.put(HAUSNUMMER_GERADE, eintraege.isHausnummer_gerade() ? 1 : 0);
    135. values.put(HAUSNUMMER_UNGERADE, eintraege.isHausnummer_ungerade() ? 1 : 0);
    136. values.put(BEMERKUNG_COLUMN, eintraege.getBemerkung());
    137. values.put(DATUM_COLUMN, eintraege.getDate() == null ? null : eintraege.getDate().getTimeInMillis() / 1000);
    138. values.put(MUELLPLATZ_COLUMN, eintraege.getMuellplatz());
    139. values.put(GROESSE1_COLUMN, eintraege.getGroesse1());
    140. db.update(TABLE_NAME, values, ID_COLUMN + " =?", new String []{String.valueOf((eintraege.getId()))});
    141. db.close();
    142. return this.readEintraege(eintraege.getId());
    143. }
    144. public void deleteEintraege(final Eintraege eintraege){
    145. SQLiteDatabase db = this.getWritableDatabase();
    146. db.delete(TABLE_NAME, ID_COLUMN + " =?", new String[]{String.valueOf(eintraege.getId())});
    147. db.close();
    148. }
    149. public void deleteAllEintraege(){
    150. SQLiteDatabase db = this.getWritableDatabase();
    151. db.execSQL("DELETE FROM " + TABLE_NAME);
    152. db.close();
    153. }
    154. public Cursor getAllEintraegeAsCursor(){
    155. return this.getReadableDatabase().rawQuery("SELECT " + ID_COLUMN + " as _id, " + KIEZ_COLUMN + " , " + GEBIETSSTRASSE_COLUMN + " , " + STRASSENZUG_COLUMN + " , " +
    156. HAUSNUMMER_COLUMN + " , " + HAUSNUMMER_GERADE + " , " + HAUSNUMMER_UNGERADE + " , " + BEMERKUNG_COLUMN + " , " + DATUM_COLUMN + " , " + MUELLPLATZ_COLUMN + " , " +
    157. GROESSE1_COLUMN + " FROM " + TABLE_NAME, null);
    158. }
    159. public Eintraege getFirstEintrage(){
    160. List<Eintraege> eintraege = this.readAllEintraege();
    161. if(eintraege.size() > 0){
    162. return eintraege.get(0);
    163. }
    164. return null;
    165. }
    166. }
    Alles anzeigen
    Momentan wird mir als Spinner Inhalt jedes mal 10 angezeigt (zur Auswahl sind 40, 80, 160, 240, 600). Ich vermute es wird die Position in der Datenbank gespeichert. Also die 10. Stelle. Ist aber nur eine Vermutung.