Ich mache eine "Zuletzt gespielte" Playlist in meiner Musik-App. Ich habe eine Datenbank zum Speichern der Informationen zu Liedern erstellt. Was mein aktueller Code macht, ist, wenn ich ein Lied spiele, füge ich es der Datenbank hinzu und ich kann es erfolgreich anzeigen. Aber das Problem ist, wenn ich denselben Song zweimal spiele, wird die Datenbank nicht aktualisiert. Beispiel, spielte ich Lied A, Lied B, Lied C, Lied D beziehungsweise. Dann wird Song A, Song B, Song C, Song D angezeigt. Aber wenn ich Song A, Song B, Song C, Song D und Song B wieder spiele. Dann zeigt es wieder dasselbe an (Lied A, Lied B, Lied C, Lied D). Aber was ich will ist: Lied A, Lied C, Lied D, Lied B. Es sollte aktualisieren und zeigen das neueste Lied gespielt, das ist, was ich meinte. Ich kann nicht herausfinden, wie es geht.Fügen Sie Daten in die Tabelle ein und wenn bereits vorhanden, bringen Sie sie nach oben SQLite
-Code für das Erstellen von Tabellen:
public void onCreate(SQLiteDatabase sqLiteDatabase) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME+ "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_NAME + " TEXT,"
+ KEY_ARTIST + " TEXT,"
+ KEY_DURATION + " INTEGER,"
+ KEY_ART + " TEXT"
+ ");";
sqLiteDatabase.execSQL(CREATE_TABLE);
}
-Code für das Abrufen und Anzeigen der Daten:
public ArrayList<SongInfoModel> getRecentlyPlayed(){
ArrayList<SongInfoModel> rpList = new ArrayList<>();
String selectQuery = "SELECT * FROM " + TABLE_NAME;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery,null);
if(cursor.moveToFirst()){
do{
long id = cursor.getLong(0);
String SongName = cursor.getString(1);
String artistName = cursor.getString(2);
long dur = cursor.getLong(3);
String Art = cursor.getString(4);
SongInfoModel sh = new SongInfoModel(id,SongName,artistName,dur,null,Art);
rpList.add(sh);
}while (cursor.moveToNext());
}
return rpList;
-Code für Daten hinzufügen:
public void addSong(SongInfoModel songInfoModel){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_ID, songInfoModel.getSongID());
values.put(KEY_NAME, songInfoModel.getSongName());
values.put(KEY_ARTIST, songInfoModel.getArtistName());
values.put(KEY_DURATION, songInfoModel.getDuration());
values.put(KEY_ART, songInfoModel.getAlbumIDArtwork());
db.insert(TABLE_NAME,null,values);
db.close();
}
versuchen Sie diese Sammlungen.rückwärts (deineListe); –
Sie haben eine Liste von Liedern, die im String-Array sind, und dann die, die in 'media player' abgespielt werden. Machen Sie eine andere Liste und fügen Sie sie hinzu. –