我正在创建一个媒体播放器应用,用户可以从本地图书馆或远程播放歌曲列表。我已经存储了他们从歌曲对象的Arraylist中的任何一个位置获得的歌曲。我想要的是允许用户将歌曲列表保存为共享首选项中的播放列表,并能够向现有播放列表添加更多播放列表。我怎么做到这一点,谢谢。
store list [
playlist: {
id: 1,
name: My Playlist,
songs:
[
{ name: 'Song 1', album: 'Album', ...}
{ name: 'Song 2', album: 'Album', ...}
{ name: 'Song 3', album: 'Album', ...}
]
},
playlist: {
id: 2,
name: My Playlist Two,
songs:
[
{ name: 'Song 1', album: 'Album', ...}
{ name: 'Song 2', album: 'Album', ...}
{ name: 'Song 3', album: 'Album', ...}
]
}
]
答案 0 :(得分:1)
如果你真的开始使用共享首选项,你可以将数组解析为JSONarray并以这种方式存储它。来自另一个问题的answer可能有所帮助。
我建议使用内部存储并实现类似的东西来存储你的数组:
String filename = "myfile";
String[] numbers = new String[] {"1, 2, 3"};
FileOutputStream outputStream;
try {
outputStream = openFileOutput(filename, Context.MODE_APPEND);
for (String s : numbers) {
outputStream.write(s.getBytes());
}
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
以下是Android提供的所有存储选项的链接:https://developer.android.com/guide/topics/data/data-storage.html
答案 1 :(得分:0)
共享偏好不是最适合您的对象。这不是客体。它更适用于配置。例如,您想要更改应用程序的语言,将新语言存储在首选项中。存储complexe对象不是一个好主意
尝试使用数据库sqlite。存储在数据库中并列出所有需要的信息,并用光标加载它。
然后您还可以使用内容提供商并获取所有本地音乐文件。