我使用android studio创建了一个音乐应用程序,我是一个新手程序员。我已经创建了一个SharedReferences来存储用户“喜爱的播放列表”的歌曲,并存储数据,但是当我尝试使用“notifydatasetchanged”告诉观察者用户想要删除歌曲时,它不会更改SharedReferences。因此,当重新打开应用程序时,歌曲不会从播放列表中删除,而是显示在xml文件夹中。
这是将歌曲添加到SharedReferences的功能:
public void addToFavourite(View view) {
String songId = view.getContentDescription().toString();
Song song = SongCollection.songSearchById(songId);
favourite.add(song);
Gson gson = new Gson();
String json = gson.toJson(favourite);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("list", json);
editor.apply();
Toast.makeText(this,"Song added", Toast.LENGTH_SHORT).show();
}
这是一个功能,单击“删除”按钮即可删除歌曲:
holder.removebtn.setOnClickListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
HomePage.favourite.remove(position);
notifyDataSetChanged();
}
});
1条答案
按热度按时间vkc1a9a21#
我发现我实际上并没有更改共享首选项文件,我所需要做的只是创建另一个编辑器。