public class Music implements Serializable {
private static final long serialVersionUID = -7060210544600464481L;
int musicId;
String musicName;
String musicPath;
public int getMusicId() {
return musicId;
}
public void setMusicId(int musicId) {
this.musicId = musicId;
}
public String getMusicName() {
return musicName;
}
public void setMusicName(String musicName) {
this.musicName = musicName;
}
public String getMusicPath() {
return musicPath;
}
public void setMusicPath(String musicPath) {
this.musicPath = musicPath;
}
}
public void searchMusci(File file) {
musicList = new ArrayList<Music>();
File[] files = file.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
searchMusci(files[i]);
}else if(files[i].getName().endsWith(".mp3")){
music = new Music();
music.setMusicId(i);
music.setMusicName(files[i].getName());
music.setMusicPath(files[i].getAbsolutePath());
musicList.add(music);
}
}
musicList = Collections.synchronizedList(new ArrayList<Music>());//把List类型强转型
Intent intent = new Intent("android.music.MusicService_Action");
intent.putExtras(1, musicList);
}
上面的Music.class已经实现Synchronize接口,但是最后一行intent.putExtra(1, musicList)提示错误,这是为什么呢?有个参考文章链接http://www.eoeandroid.com/forum.php?mod=viewthread&tid=81308 希望大神们指点下
private static final long serialVersionUID = -7060210544600464481L;
int musicId;
String musicName;
String musicPath;
public int getMusicId() {
return musicId;
}
public void setMusicId(int musicId) {
this.musicId = musicId;
}
public String getMusicName() {
return musicName;
}
public void setMusicName(String musicName) {
this.musicName = musicName;
}
public String getMusicPath() {
return musicPath;
}
public void setMusicPath(String musicPath) {
this.musicPath = musicPath;
}
}
public void searchMusci(File file) {
musicList = new ArrayList<Music>();
File[] files = file.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
searchMusci(files[i]);
}else if(files[i].getName().endsWith(".mp3")){
music = new Music();
music.setMusicId(i);
music.setMusicName(files[i].getName());
music.setMusicPath(files[i].getAbsolutePath());
musicList.add(music);
}
}
musicList = Collections.synchronizedList(new ArrayList<Music>());//把List类型强转型
Intent intent = new Intent("android.music.MusicService_Action");
intent.putExtras(1, musicList);
}
上面的Music.class已经实现Synchronize接口,但是最后一行intent.putExtra(1, musicList)提示错误,这是为什么呢?有个参考文章链接http://www.eoeandroid.com/forum.php?mod=viewthread&tid=81308 希望大神们指点下
解决方案 »
- 智能家居 android
- android2.3系统颜色反色问题
- 在android2.3中,关于Service(服务)被休眠的问题
- 请问这种效果怎么做出来,提供思路护或者代码都可以,小弟初学,困扰很多天了,哎 。。
- inflate() android sdk中调用该方法调试时报Source not found问题
- 光盘中, Stable-Android2.3-32bit-forlinx-2011-04-28.tar.gz 这个文件是什么作用?
- android发展问题!!!
- android利用声音测距离
- android Notification点击事件
- Android的声波通信实例中如何传输11个0~9的数字以及代码详解
- unity3d 也可以开发android吗
- 请教,我在命令行输入adb,提示不是内部或外部命令,是为什么???
不用前面那个强转吧
synchronizedList里面返回的是一个SynchronizedRandomAccessListSynchronizedRandomAccessList继承自SynchronizedListSynchronizedList里面继承自SynchronizedCollection然后里面有两个对象,Collection和Object,object好像木有实现Serializable。Collection实际上就是你的那个arraylist。这么一说,我又看了下普通的arraylist里面有神马,有一个object,但是transient属性的,序列化的时候为不可见。so,jdk的问题。 Collections.synchronizedList这个方法不应该调用
但Collections.synchronizedList返回的arraylist不能序列化。所以你不调用这个方法应该就可以了