2016-09-24 138 views
-2

我想学习parcelable。早先我使用get和set函数,但现在我使用parcelable将对象传递给其他类我做了passdata类并实现了parcelable,但是如何添加列表到类对象。如何parcelable对象

class Passdata implements Parcelable { 
private String title,album; 
private long duration; 
private Uri data,album_art; 

public String getTitle() { 
    return title; 
} 

void setTitle(String title) { 
    this.title = title; 
} 

public String getAlbum() { 
    return album; 
} 

void setAlbum(String album) { 
    this.album = album; 
} 

public long getDuration() { 
    return duration; 
} 

void setDuration(long duration) { 
    this.duration = duration; 
} 

public Uri getData() { 
    return data; 
} 

void setData(Uri data) { 
    this.data = data; 
} 

public Uri getAlbum_art() { 
    return album_art; 
} 

void setAlbum_art(Uri album_art) { 
    this.album_art = album_art; 
} 

Passdata(Parcel in) { 
    title = in.readString(); 
    album = in.readString(); 
    duration = in.readLong(); 
    data = in.readParcelable(Uri.class.getClassLoader()); 
    album_art = in.readParcelable(Uri.class.getClassLoader()); 
} 

@Override 
public void writeToParcel(Parcel dest, int flags) { 
    dest.writeString(title); 
    dest.writeString(album); 
    dest.writeLong(duration); 
    dest.writeParcelable(data, flags); 
    dest.writeParcelable(album_art, flags); 
} 

@Override 
public int describeContents() { 
    return 0; 
} 

public static final Creator<Passdata> CREATOR = new Creator<Passdata>() { 
    @Override 
    public Passdata createFromParcel(Parcel in) { 
     return new Passdata(in); 
    } 

    @Override 
    public Passdata[] newArray(int size) { 
     return new Passdata[size]; 
    } 
}; 
} 

我怎么能添加喜欢在这个地方

do { 
        int audioTitle = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE); 
        int audioartist = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST); 
        int audioduration = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION); 
        int audiodata = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA); 
        int audioalbum = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM); 
        int audioalbumid = audioCursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM_ID); 
        Passdata info = new Passdata(); 
        info.setData(Uri.parse(audioCursor.getString(audiodata))); 
        info.setTitle(audioCursor.getString(audioTitle)); 
        info.setDuration(audioCursor.getLong(audioduration)); 
        // info.setArtist(audioCursor.getString(audioartist)); 
        info.setAlbum(audioCursor.getString(audioalbum)); 
        info.setAlbum_art(ContentUris.withAppendedId(albumArtUri, audioCursor.getLong(audioalbumid))); 
        audioList.add(info); 
       } 

我得到错误的对象是我创造的passdata对象 如何解决这一问题?

+1

我们看不到你的屏幕,“我得到错误”什么错误? – 2016-09-24 18:20:10

+0

它显示传递的数据不能在Android Studio中的插件应用 – SAVVY

+0

AURO parcelable插件 搜索它 https://github.com/mcharmas/android-parcelable-intellij-plugin – amorenew

回答

1

您在PassData类中没有空的构造函数。加入了这段代码:

public Passdata() { 

} 
+0

休息一切都很好?或者我犯了一些错误 – SAVVY

相关问题