2011-05-02 105 views
0

我試圖從一項活動中將額外項目傳遞給另一項活動。我也有一個名爲Objects的類,它包含了額外的對象。Android:傳遞參數時出現錯誤

在我的第一個活動,我寫了這個:

private OnClickListener top_listener = new OnClickListener() { 
     public void onClick(View v) { 
        Intent top = new Intent(Main.this, TopProject.class); 
        Bundle b = new Bundle(); 
        b.putParcelable("project_title", Objects); 
        startActivity(top); 
     } 
     }; 

但有在這一行語法錯誤:b.putParcelable( 「PROJECT_TITLE」,對象);它說'對象'不能被解析爲變量。我應該首先聲明一些其他的東西嗎?謝謝

,這是我的對象類:

public class Objects implements Parcelable{ 

    String project_title = "project title"; 
    String organization_title = "organization title"; 
    String keyword = "keyword"; 
    String short_code = "short code"; 
    String project_description = "description"; 
    String smallImageUrl = "smallImageUrl"; 
    String bigImageUrl = "bigImageUrl"; 
    String price= "price"; 
    String country= "country"; 


    public static ArrayList<Project> projectsList = new ArrayList<Project>(); 

    public Objects(String project_title, String organization_title, String keyword, String short_code, String project_description, String smallImageUrl, String bigImageUrl, String price, String country) { 
     this.project_title = project_title; 
     this.organization_title = organization_title; 
     this.keyword = keyword; 
     this.short_code = short_code; 
     this.project_description = project_description; 
     this.smallImageUrl = smallImageUrl; 
     this.bigImageUrl = bigImageUrl; 
     this.price = price; 
     this.country = country; 

    } 

    private Objects(Parcel parcel) { 
      project_title = parcel.readString(); 
      organization_title = parcel.readString(); 
      keyword = parcel.readString(); 
      short_code = parcel.readString(); 
      project_description = parcel.readString(); 
      smallImageUrl = parcel.readString(); 
      bigImageUrl = parcel.readString(); 
      price = parcel.readString(); 
      country = parcel.readString(); 
      //projectsList = parcel.readList(); 
     } 

    public int describeContents() { 

     return 0; 
    } 

    public void writeToParcel(Parcel parcel, int flags) { 
     parcel.writeString(project_title); 
     parcel.writeString(organization_title); 
     parcel.writeString(keyword); 
     parcel.writeString(short_code); 
     parcel.writeString(project_description); 
     parcel.writeString(smallImageUrl); 
     parcel.writeString(bigImageUrl); 
     parcel.writeString(price); 
     parcel.writeString(country); 
     parcel.writeList(projectsList); 
    } 

    public String getProjectTitle(){ 
     return project_title; 
    } 

    public String getOrganizationTitle(){ 
     return organization_title; 
    } 

    public String getProjectDescription(){ 
     return project_description; 
    } 

    public String getKeyword(){ 
     return keyword; 
    } 

    public String getShortcode(){ 
     return short_code; 
    } 

    public String getSmallImageUrl(){ 
     return smallImageUrl; 
    } 

    public String getBigImageUrl(){ 
     return bigImageUrl; 
    } 

    public String getPrice(){ 
     return price; 
    } 

    public String getCountry(){ 
     return country; 
    } 

    public void setProjectTitle(String project_title){ 
     this.project_title = project_title; 
    } 

    public void setOrganizationTitle(String organization_title){ 
     this.organization_title = organization_title; 
    } 

    public void setProjectDescription(String project_description){ 
     this.project_description = project_description; 
    } 

    public void setKeyword(String keyword){ 
     this.keyword = keyword; 
    } 

    public void setShortcode(String short_code){ 
     this.short_code = short_code; 
    } 

    public void setSmallImageUrl(String smallImageUrl){ 
     this.smallImageUrl = smallImageUrl; 
    } 

    public void setBigImageUrl(String bigImageUrl){ 
     this.bigImageUrl = bigImageUrl; 
    } 

    public void setPrice(String price){ 
     this.price = price; 
    } 

    public void setCountry(String country){ 
     this.country = country; 
    } 

    public static Creator<Objects> CREATOR 
      = new Creator<Objects>() { 
     public Objects createFromParcel(Parcel parcel) { 
      return new Objects(parcel); 
     } 

     public Objects[] newArray(int size) { 
      return new Objects[size]; 
     } 
    }; 

回答

1
b.putParcelable("project_title", Objects); 

這意味着什麼都沒有。你必須提供你的班級的一個實例。例如:

b.putParcelable("project_title", new Objects()); 
0

您無法通過「Oject」作爲arguement,因爲它那邊deifnes的clsaa.Provice的名稱類的裁判。

+0

誦讀困難......? ;) – OcuS 2011-05-02 10:28:48

1

如果它只是一個簡單的類,其中只有基本類型和Serializables,請使用Serializable,而不是Parcelable。它會讓你的生活變得更輕鬆。傳遞的Objects對象也必須是一個實例,如其他答案中所述

Objects object = new Objects(); //assuming Objects implements Serializable 
bundle.putSerializable("blahblah", object); 
相關問題