Danke für eure Antworten, dann versuch ich mich mal an einem Adapter.
Beiträge von MarkusMeier
-
-
Entweder in einer neuen Activity, was mir aber besser gefallen würde, wenn die Daten in dem selben Listeneintrag erscheinen würden.
-
**Klasse 4:**
Java
Alles anzeigenpackage de.bussgeldkatalog.bussgeldkatalog; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class TatbestandskatalogDbHelper extends SQLiteOpenHelper { private static final String LOG_TAG = TatbestandskatalogDbHelper.class.getSimpleName(); public static final String DB_NAME = "tatbestandskatalog.db"; public static final int DB_VERSION = 1; public static final String COLUMN_ID = "_id"; public static final String TABLE_TABTESTANDSKATALOG = "tatbestandskatalog"; public static final String COLUMN_TATBESTANDSNUMMER = "tatbestandsnummer"; public static final String COLUMN_TATBESTANDSTEXT = "tatbestandstext"; public static final String COLUMN_BUSSGELD = "bussgeld"; public static final String COLUMN_FAHRVERBOT = "fahrverbot"; public static final String COLUMN_PUNKTE = "punkte"; public static final String SQL_CREATE = "CREATE TABLE " + TABLE_TABTESTANDSKATALOG + "(" + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_TATBESTANDSNUMMER + " INTEGER NOT NULL, " + COLUMN_TATBESTANDSTEXT + " TEXT NOT NULL, " + COLUMN_BUSSGELD + " INTEGER NOT NULL, " + COLUMN_FAHRVERBOT + " TEXT NOT NULL, " + COLUMN_PUNKTE + " INTEGER NOT NULL);"; public TatbestandskatalogDbHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); Log.d(LOG_TAG, "DbHelper hat die Datenbank: " + getDatabaseName() + " erzeugt."); } // Die onCreate-Methode wird nur aufgerufen, falls die Datenbank noch nicht existiert @Override public void onCreate(SQLiteDatabase db) { try { Log.d(LOG_TAG, "Die Tabelle wird mit SQL-Befehl: " + SQL_CREATE + " angelegt."); db.execSQL(SQL_CREATE); } catch (Exception ex) { Log.e(LOG_TAG, "Fehler beim Anlegen der Tabelle: " + ex.getMessage()); } } @Override public void onUpgrade (SQLiteDatabase db,int oldVersion, int newVersion){ } }
**Layout-Datei:**
XML
Alles anzeigen<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".TatbestandskatalogActivity" > <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusableInTouchMode="true" > </LinearLayout> <ListView android:id="@+id/listview_tatbestandskatalog" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout>
Vielen Dank bereits für die Hilfe! -
Hallo, ich habe folgendes Tutorial verwendet:
http://www.programmierenlernen…in-android-studio-anlegen
Wie in der folgenden Grafik ersichtlich, werden die Datenbankeinträge in einer ListView angezeigt: [Blockierte Grafik: 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
Alles anzeigenpackage de.bussgeldkatalog.bussgeldkatalog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.List; public class TatbestandskatalogActivity extends AppCompatActivity { public static final String LOG_TAG = TatbestandskatalogActivity.class.getSimpleName(); private TatbestandskatalogDataSource dataSource; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_tatbestandskatalog); dataSource = new TatbestandskatalogDataSource(this); Log.d(LOG_TAG, "Die Datenquelle wird geöffnet."); dataSource.open(); Tatbestandskatalog tatbestandskatalog = dataSource.createTatbestandskatalog(1234567, "Bußgeldvorschrift1aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 123456, "Test", 123456); Tatbestandskatalog tatbestandskatalog2 = dataSource.createTatbestandskatalog(1234567, "Bußgeldvorschrift2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 123456, "Test", 123456); Log.d(LOG_TAG, "Es wurde der folgende Eintrag in die Datenbank geschrieben:"); Log.d(LOG_TAG, "ID: " + tatbestandskatalog.getId() + ", Inhalt: " + tatbestandskatalog.toString()); Log.d(LOG_TAG, "Folgende Einträge sind in der Datenbank vorhanden:"); showAllListEntries(); Log.d(LOG_TAG, "Die Datenquelle wird geschlossen."); dataSource.close(); } private void showAllListEntries () { List<Tatbestandskatalog> tatbestandskatalogList = dataSource.getAllTatbestandskatalog(); ArrayAdapter<Tatbestandskatalog> tatbestandskatalogArrayAdapter = new ArrayAdapter<> ( this, android.R.layout.simple_list_item_1, tatbestandskatalogList); ListView tatbestandskatalogListView = (ListView) findViewById(R.id.listview_tatbestandskatalog); tatbestandskatalogListView.setAdapter(tatbestandskatalogArrayAdapter); } }
**Klasse 2:**
Java
Alles anzeigenpackage de.bussgeldkatalog.bussgeldkatalog; public class Tatbestandskatalog { private int tatbestandsnummer; private String tatbestandstext; private int bussgeld; private String fahrverbot; private int punkte; private long id; public Tatbestandskatalog(long id, int tatbetandsnummer, String tatbestandstext, int bussgeld, String fahrverbot, int punkte) { this.tatbestandsnummer = tatbetandsnummer; this.tatbestandstext = tatbestandstext; this.bussgeld = bussgeld; this.fahrverbot = fahrverbot; this.punkte = punkte; this.id = id; } public int getTatbestandsnummer() { return tatbestandsnummer; } public void setTatbestandsnummer(int tatbestandsnummer) { this.tatbestandsnummer = tatbestandsnummer; } public String getTatbestandstext() { return tatbestandstext; } public void setTatbestandstext(String tatbestandstext) { this.tatbestandstext = tatbestandstext; } public int getBussgeld() { return bussgeld; } public void setBussgeld(int bussgeld) { this.bussgeld = bussgeld; } public String getFahrverbot() { return fahrverbot; } public void setFahrverbot(String fahrverbot) { this.fahrverbot = fahrverbot; } public int getPunkte() { return punkte; } public void setPunkte(int punkte) { this.punkte = punkte; } public long getId() { return id; } public void setId(long id) { this.id = id; } @Override public String toString() { String output = tatbestandsnummer + tatbestandstext + "\nBußgeld: " + bussgeld + " Euro" + "\nFahrverbot: " + fahrverbot + " Monate" + "\nPunkte: " + punkte + " Punkte"; return output; } }
**Klasse 3:**
Java
Alles anzeigenpackage de.bussgeldkatalog.bussgeldkatalog; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.util.Log; import android.content.ContentValues; import android.database.Cursor; import java.util.ArrayList; import java.util.List; public class TatbestandskatalogDataSource { private static final String LOG_TAG = TatbestandskatalogDataSource.class.getSimpleName(); private SQLiteDatabase database; private TatbestandskatalogDbHelper dbHelper; private String[] columns = { TatbestandskatalogDbHelper.COLUMN_ID, TatbestandskatalogDbHelper.COLUMN_TATBESTANDSNUMMER, TatbestandskatalogDbHelper.COLUMN_TATBESTANDSTEXT, TatbestandskatalogDbHelper.COLUMN_BUSSGELD, TatbestandskatalogDbHelper.COLUMN_FAHRVERBOT, TatbestandskatalogDbHelper.COLUMN_PUNKTE }; public void open() { Log.d(LOG_TAG, "Eine Referenz auf die Datenbank wird jetzt angefragt."); database = dbHelper.getWritableDatabase(); Log.d(LOG_TAG, "Datenbank-Referenz erhalten. Pfad zur Datenbank: " + database.getPath()); } public void close() { dbHelper.close(); Log.d(LOG_TAG, "Datenbank mit Hilfe des DbHelpers geschlossen."); } public Tatbestandskatalog createTatbestandskatalog(int tatbestandsnummer, String tatbestandstext, int bussgeld, String fahrverbot, int punkte) { ContentValues values = new ContentValues(); values.put(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSNUMMER, tatbestandsnummer); values.put(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSTEXT, tatbestandstext); values.put(TatbestandskatalogDbHelper.COLUMN_BUSSGELD, bussgeld); values.put(TatbestandskatalogDbHelper.COLUMN_FAHRVERBOT, fahrverbot); values.put(TatbestandskatalogDbHelper.COLUMN_PUNKTE, punkte); long insertId = database.insert(TatbestandskatalogDbHelper.TABLE_TABTESTANDSKATALOG, null, values); Cursor cursor = database.query(TatbestandskatalogDbHelper.TABLE_TABTESTANDSKATALOG, columns, TatbestandskatalogDbHelper.COLUMN_ID + "=" + insertId, null, null, null, null); cursor.moveToFirst(); Tatbestandskatalog tatbestandskatalog = cursorToTatbestandskatalog(cursor); cursor.close(); return tatbestandskatalog; } private Tatbestandskatalog cursorToTatbestandskatalog(Cursor cursor) { int idIndex = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_ID); int idTatbestandsnummer = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSNUMMER); int idTatbestandstext = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_TATBESTANDSTEXT); int idBussgeld = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_BUSSGELD); int idFahrverbot = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_FAHRVERBOT); int idPunkte = cursor.getColumnIndex(TatbestandskatalogDbHelper.COLUMN_PUNKTE); long id = cursor.getLong(idIndex); int tatbestandsnummer = cursor.getInt(idTatbestandsnummer); String tatbestandstext = cursor.getString(idTatbestandstext); int bussgeld = cursor.getInt(idBussgeld); String fahrverbot = cursor.getString(idFahrverbot); int punkte = cursor.getInt(idPunkte); Tatbestandskatalog tatbestandskatalog = new Tatbestandskatalog(id, tatbestandsnummer, tatbestandstext, bussgeld, fahrverbot, punkte); return tatbestandskatalog; } public List<Tatbestandskatalog> getAllTatbestandskatalog() { List<Tatbestandskatalog> tatbestandskatalogList = new ArrayList<>(); Cursor cursor = database.query(TatbestandskatalogDbHelper.TABLE_TABTESTANDSKATALOG, columns, null, null, null, null, null); cursor.moveToFirst(); Tatbestandskatalog tatbestandskatalog; while(!cursor.isAfterLast()) { tatbestandskatalog = cursorToTatbestandskatalog(cursor); tatbestandskatalogList.add(tatbestandskatalog); Log.d(LOG_TAG, "ID: " + tatbestandskatalog.getId() + ", Inhalt: " + tatbestandskatalog.toString()); cursor.moveToNext(); } cursor.close(); return tatbestandskatalogList; } public TatbestandskatalogDataSource(Context context) { Log.d(LOG_TAG, "Unsere DataSource erzeugt jetzt den dbHelper."); dbHelper = new TatbestandskatalogDbHelper(context); } }