SQLite Darstellung

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

  • SQLite Darstellung

    Hallo, ich habe folgendes Tutorial verwendet:
    programmierenlernenhq.de/andro…in-android-studio-anlegen
    Wie in der folgenden Grafik ersichtlich, werden die Datenbankeinträge in einer ListView angezeigt: [IMG:https://picload.org/image/rpcaapri/screenshot.png]

    Die Einträge bestehen jeweils aus 5 Werten. Ich hätte jedoch gerne, dass in der ListView nur zwei Werte (die erste Zahlenreihe und der erste String-Text) angezeigt und erst beim Klicken auf einen Eintrag die zugehörigen jeweiligen Werte mit angezeigt werden.
    Kann mir da jemand behilflich sein? Eine lange Internetrecherche konnte mir bislang nicht weiterhelfen. :(

    Hier sind meine Klassen:

    **Klasse 1:**

    Java-Quellcode

    1. package de.bussgeldkatalog.bussgeldkatalog;
    2. import android.os.Bundle;
    3. import android.support.v7.app.AppCompatActivity;
    4. import android.util.Log;
    5. import android.widget.ArrayAdapter;
    6. import android.widget.ListView;
    7. import java.util.List;
    8. public class TatbestandskatalogActivity extends AppCompatActivity {
    9. public static final String LOG_TAG = TatbestandskatalogActivity.class.getSimpleName();
    10. private TatbestandskatalogDataSource dataSource;
    11. @Override
    12. protected void onCreate(Bundle savedInstanceState) {
    13. super.onCreate(savedInstanceState);
    14. setContentView(R.layout.activity_tatbestandskatalog);
    15. dataSource = new TatbestandskatalogDataSource(this);
    16. Log.d(LOG_TAG, "Die Datenquelle wird geöffnet.");
    17. dataSource.open();
    18. Tatbestandskatalog tatbestandskatalog = dataSource.createTatbestandskatalog(1234567, "Bußgeldvorschrift1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 123456, "Test", 123456);
    19. Tatbestandskatalog tatbestandskatalog2 = dataSource.createTatbestandskatalog(1234567, "Bußgeldvorschrift2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 123456, "Test", 123456);
    20. Log.d(LOG_TAG, "Es wurde der folgende Eintrag in die Datenbank geschrieben:");
    21. Log.d(LOG_TAG, "ID: " + tatbestandskatalog.getId() + ", Inhalt: " + tatbestandskatalog.toString());
    22. Log.d(LOG_TAG, "Folgende Einträge sind in der Datenbank vorhanden:");
    23. showAllListEntries();
    24. Log.d(LOG_TAG, "Die Datenquelle wird geschlossen.");
    25. dataSource.close();
    26. }
    27. private void showAllListEntries () {
    28. List<Tatbestandskatalog> tatbestandskatalogList = dataSource.getAllTatbestandskatalog();
    29. ArrayAdapter<Tatbestandskatalog> tatbestandskatalogArrayAdapter = new ArrayAdapter<> (
    30. this,
    31. android.R.layout.simple_list_item_1,
    32. tatbestandskatalogList);
    33. ListView tatbestandskatalogListView = (ListView) findViewById(R.id.listview_tatbestandskatalog);
    34. tatbestandskatalogListView.setAdapter(tatbestandskatalogArrayAdapter);
    35. }
    36. }
    Alles anzeigen




    **Klasse 2:**

    Java-Quellcode

    1. package de.bussgeldkatalog.bussgeldkatalog;
    2. public class Tatbestandskatalog {
    3. private int tatbestandsnummer;
    4. private String tatbestandstext;
    5. private int bussgeld;
    6. private String fahrverbot;
    7. private int punkte;
    8. private long id;
    9. public Tatbestandskatalog(long id, int tatbetandsnummer, String tatbestandstext, int bussgeld, String fahrverbot, int punkte) {
    10. this.tatbestandsnummer = tatbetandsnummer;
    11. this.tatbestandstext = tatbestandstext;
    12. this.bussgeld = bussgeld;
    13. this.fahrverbot = fahrverbot;
    14. this.punkte = punkte;
    15. this.id = id;
    16. }
    17. public int getTatbestandsnummer() {
    18. return tatbestandsnummer;
    19. }
    20. public void setTatbestandsnummer(int tatbestandsnummer) {
    21. this.tatbestandsnummer = tatbestandsnummer;
    22. }
    23. public String getTatbestandstext() {
    24. return tatbestandstext;
    25. }
    26. public void setTatbestandstext(String tatbestandstext) {
    27. this.tatbestandstext = tatbestandstext;
    28. }
    29. public int getBussgeld() {
    30. return bussgeld;
    31. }
    32. public void setBussgeld(int bussgeld) {
    33. this.bussgeld = bussgeld;
    34. }
    35. public String getFahrverbot() {
    36. return fahrverbot;
    37. }
    38. public void setFahrverbot(String fahrverbot) {
    39. this.fahrverbot = fahrverbot;
    40. }
    41. public int getPunkte() {
    42. return punkte;
    43. }
    44. public void setPunkte(int punkte) {
    45. this.punkte = punkte;
    46. }
    47. public long getId() {
    48. return id;
    49. }
    50. public void setId(long id) {
    51. this.id = id;
    52. }
    53. @Override
    54. public String toString() {
    55. String output = tatbestandsnummer + tatbestandstext + "\nBußgeld: " + bussgeld + " Euro" + "\nFahrverbot: " + fahrverbot + " Monate" + "\nPunkte: " + punkte + " Punkte";
    56. return output;
    57. }
    58. }
    Alles anzeigen
    **Klasse 3:**

    Java-Quellcode

    1. package de.bussgeldkatalog.bussgeldkatalog;
    2. import android.content.Context;
    3. import android.database.sqlite.SQLiteDatabase;
    4. import android.util.Log;
    5. import android.content.ContentValues;
    6. import android.database.Cursor;
    7. import java.util.ArrayList;
    8. import java.util.List;
    9. public class TatbestandskatalogDataSource {
    10. private static final String LOG_TAG = TatbestandskatalogDataSource.class.getSimpleName();
    11. private SQLiteDatabase database;
    12. private TatbestandskatalogDbHelper dbHelper;
    13. private String[] columns = {
    14. TatbestandskatalogDbHelper.COLUMN_ID,
    15. TatbestandskatalogDbHelper.COLUMN_TATBESTANDSNUMMER,
    16. TatbestandskatalogDbHelper.COLUMN_TATBESTANDSTEXT,
    17. TatbestandskatalogDbHelper.COLUMN_BUSSGELD,
    18. TatbestandskatalogDbHelper.COLUMN_FAHRVERBOT,
    19. TatbestandskatalogDbHelper.COLUMN_PUNKTE
    20. };
    21. public void open() {
    22. Log.d(LOG_TAG, "Eine Referenz auf die Datenbank wird jetzt angefragt.");
    23. database = dbHelper.getWritableDatabase();
    24. Log.d(LOG_TAG, "Datenbank-Referenz erhalten. Pfad zur Datenbank: " + database.getPath());
    25. }
    26. public void close() {
    27. dbHelper.close();
    28. Log.d(LOG_TAG, "Datenbank mit Hilfe des DbHelpers geschlossen.");
    29. }
    30. public Tatbestandskatalog createTatbestandskatalog(int tatbestandsnummer, String tatbestandstext, int bussgeld, String fahrverbot, int punkte) {
    31. ContentValues values = new ContentValues();
    32. values.put(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSNUMMER, tatbestandsnummer);
    33. values.put(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSTEXT, tatbestandstext);
    34. values.put(TatbestandskatalogDbHelper.COLUMN_BUSSGELD, bussgeld);
    35. values.put(TatbestandskatalogDbHelper.COLUMN_FAHRVERBOT, fahrverbot);
    36. values.put(TatbestandskatalogDbHelper.COLUMN_PUNKTE, punkte);
    37. long insertId = database.insert(TatbestandskatalogDbHelper.TABLE_TABTESTANDSKATALOG, null, values);
    38. Cursor cursor = database.query(TatbestandskatalogDbHelper.TABLE_TABTESTANDSKATALOG,
    39. columns, TatbestandskatalogDbHelper.COLUMN_ID + "=" + insertId,
    40. null, null, null, null);
    41. cursor.moveToFirst();
    42. Tatbestandskatalog tatbestandskatalog = cursorToTatbestandskatalog(cursor);
    43. cursor.close();
    44. return tatbestandskatalog;
    45. }
    46. private Tatbestandskatalog cursorToTatbestandskatalog(Cursor cursor) {
    47. int idIndex = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_ID);
    48. int idTatbestandsnummer = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSNUMMER);
    49. int idTatbestandstext = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSTEXT);
    50. int idBussgeld = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_BUSSGELD);
    51. int idFahrverbot = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_FAHRVERBOT);
    52. int idPunkte = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_PUNKTE);
    53. long id = cursor.getLong(idIndex);
    54. int tatbestandsnummer = cursor.getInt(idTatbestandsnummer);
    55. String tatbestandstext = cursor.getString(idTatbestandstext);
    56. int bussgeld = cursor.getInt(idBussgeld);
    57. String fahrverbot = cursor.getString(idFahrverbot);
    58. int punkte = cursor.getInt(idPunkte);
    59. Tatbestandskatalog tatbestandskatalog = new Tatbestandskatalog(id, tatbestandsnummer, tatbestandstext, bussgeld, fahrverbot, punkte);
    60. return tatbestandskatalog;
    61. }
    62. public List<Tatbestandskatalog> getAllTatbestandskatalog() {
    63. List<Tatbestandskatalog> tatbestandskatalogList = new ArrayList<>();
    64. Cursor cursor = database.query(TatbestandskatalogDbHelper.TABLE_TABTESTANDSKATALOG,
    65. columns, null, null, null, null, null);
    66. cursor.moveToFirst();
    67. Tatbestandskatalog tatbestandskatalog;
    68. while(!cursor.isAfterLast()) {
    69. tatbestandskatalog = cursorToTatbestandskatalog(cursor);
    70. tatbestandskatalogList.add(tatbestandskatalog);
    71. Log.d(LOG_TAG, "ID: " + tatbestandskatalog.getId() + ", Inhalt: " + tatbestandskatalog.toString());
    72. cursor.moveToNext();
    73. }
    74. cursor.close();
    75. return tatbestandskatalogList;
    76. }
    77. public TatbestandskatalogDataSource(Context context) {
    78. Log.d(LOG_TAG, "Unsere DataSource erzeugt jetzt den dbHelper.");
    79. dbHelper = new TatbestandskatalogDbHelper(context);
    80. }
    81. }
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kogoro-Christopher ()

  • **Klasse 4:**

    Java-Quellcode

    1. package de.bussgeldkatalog.bussgeldkatalog;
    2. import android.content.Context;
    3. import android.database.sqlite.SQLiteDatabase;
    4. import android.database.sqlite.SQLiteOpenHelper;
    5. import android.util.Log;
    6. public class TatbestandskatalogDbHelper extends SQLiteOpenHelper {
    7. private static final String LOG_TAG = TatbestandskatalogDbHelper.class.getSimpleName();
    8. public static final String DB_NAME = "tatbestandskatalog.db";
    9. public static final int DB_VERSION = 1;
    10. public static final String COLUMN_ID = "_id";
    11. public static final String TABLE_TABTESTANDSKATALOG = "tatbestandskatalog";
    12. public static final String COLUMN_TATBESTANDSNUMMER = "tatbestandsnummer";
    13. public static final String COLUMN_TATBESTANDSTEXT = "tatbestandstext";
    14. public static final String COLUMN_BUSSGELD = "bussgeld";
    15. public static final String COLUMN_FAHRVERBOT = "fahrverbot";
    16. public static final String COLUMN_PUNKTE = "punkte";
    17. public static final String SQL_CREATE =
    18. "CREATE TABLE " + TABLE_TABTESTANDSKATALOG +
    19. "(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
    20. COLUMN_TATBESTANDSNUMMER + " INTEGER NOT NULL, " +
    21. COLUMN_TATBESTANDSTEXT + " TEXT NOT NULL, " +
    22. COLUMN_BUSSGELD + " INTEGER NOT NULL, " +
    23. COLUMN_FAHRVERBOT + " TEXT NOT NULL, " +
    24. COLUMN_PUNKTE + " INTEGER NOT NULL);";
    25. public TatbestandskatalogDbHelper(Context context) {
    26. super(context, DB_NAME, null, DB_VERSION);
    27. Log.d(LOG_TAG, "DbHelper hat die Datenbank: " + getDatabaseName() + " erzeugt.");
    28. }
    29. // Die onCreate-Methode wird nur aufgerufen, falls die Datenbank noch nicht existiert
    30. @Override
    31. public void onCreate(SQLiteDatabase db) {
    32. try {
    33. Log.d(LOG_TAG, "Die Tabelle wird mit SQL-Befehl: " + SQL_CREATE + " angelegt.");
    34. db.execSQL(SQL_CREATE);
    35. } catch (Exception ex) {
    36. Log.e(LOG_TAG, "Fehler beim Anlegen der Tabelle: " + ex.getMessage());
    37. }
    38. }
    39. @Override
    40. public void onUpgrade (SQLiteDatabase db,int oldVersion, int newVersion){
    41. }
    42. }
    Alles anzeigen



    **Layout-Datei:**

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <LinearLayout
    3. xmlns:android="http://schemas.android.com/apk/res/android"
    4. xmlns:tools="http://schemas.android.com/tools"
    5. android:orientation="vertical"
    6. android:layout_width="match_parent"
    7. android:layout_height="match_parent"
    8. android:paddingLeft="@dimen/activity_horizontal_margin"
    9. android:paddingRight="@dimen/activity_horizontal_margin"
    10. android:paddingTop="@dimen/activity_vertical_margin"
    11. android:paddingBottom="@dimen/activity_vertical_margin"
    12. tools:context=".TatbestandskatalogActivity"
    13. >
    14. <LinearLayout
    15. android:orientation="horizontal"
    16. android:layout_width="fill_parent"
    17. android:layout_height="wrap_content"
    18. android:focusableInTouchMode="true"
    19. >
    20. </LinearLayout>
    21. <ListView
    22. android:id="@+id/listview_tatbestandskatalog"
    23. android:layout_width="match_parent"
    24. android:layout_height="match_parent"
    25. />
    26. </LinearLayout>
    Alles anzeigen

    Vielen Dank bereits für die Hilfe! :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kogoro-Christopher ()

  • Hallo bitte formatiert euren Code mit der dafür vorgeshenen Funktion " </> "

    Würde einen Klasse machen so wie Kasse2 nur mit den von dir gewüschten Eeinträgen. Diese Datenstucktur dan in der Arrayliste verwenden. dazu must du auch noch eine metode zum auslesen in der Klasse3 schreiben änlich der getAllTatbestandskatalog() metode nur mit den zwei gewüschten werten.

    wie hast du dier das mit den anzeigen der zusetslichen werten gedacht?
    Ein Feedback auf Tipps ist auch schön. :P
  • Man kann doch ne Liste nehmen und nen Adapter nutzen um die Daten reduziert anzuzeigen.
    Der Adapter dient als Vermittler zwischen Daten und View. Ein ViewModel quasi. Dem Adapter wird für die ListItems ein Layout mitgegeben, damit die Liste jedes Item visualisieren kann.

    javacodegeeks.com/2013/09/andr…with-adapter-example.html
    Und denkt immer daran: "Das Leben ist ein Handschuh, der gar nicht existiert. Mal ist er da, dann wieder nicht. Das ist des Lebens Lauf. Du denkst du kannst ihn sehen, doch dann trickst er dich aus."
  • ja das meinte ich auch das er sich eine eigene Liste und natürlich auch eigenen Adapter bauen muss .
    Mit den Standard Adapter geht es meines Wissens nicht. Auch in deinen Link wird eineigener Adapter gebaut. Dann kann er auch mit sichtbaren und unsichtbaren Einträgen arbeiten.
    Ein Feedback auf Tipps ist auch schön. :P