2016-09-24 1 views
-2

필자는 배움을 배우려고 노력하고있다. 이전에는 get과 set 함수를 사용하고 있었지만 이제는 parcelable을 사용하여 다른 클래스에 객체를 전달했다. 나는 passdata 클래스를 만들고 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

화면이 보이지 않습니다. "오류가 발생합니다"라는 오류가 있습니까? 이 패스 데이터를 보여주는 –

+0

는 안드로이드 스튜디오 플러그인에 – SAVVY

+0

AURO parcelable 플러그인을 검색을 적용 할 수 없습니다 그것은 나는하지만 오류 – amorenew

답변

1

PassData 클래스에 빈 생성자가 없습니다. 이 코드 추가 :

public Passdata() { 

} 
+0

무엇입니까 링크를 시도 https://github.com/mcharmas/android-parcelable-intellij-plugin – SAVVY

관련 문제