2015-12-08 2 views
1

В моих Деятельность A, хочу передать results на Деятельность B.Проходной массив с использованием намерения

ArrayList<SearchResults> results = new ArrayList<SearchResults>(); 

i.putExtra("resuls", results); 

активность B

results=getIntent().getExtras().getString("results"); 

App разбился, когда хотят намерения B

Process: com.example.project.myapplication, PID: 3162 
    java.lang.RuntimeException: Parcel: unable to marshal value [email protected] 
      at android.os.Parcel.writeValue(Parcel.java:1397) 
      at android.os.Parcel.writeList(Parcel.java:738) 

SearchResult

public class SearchResults { 

    private String weather = ""; 
    private String date = ""; 
    private String status = ""; 
    private String timeIn=""; 
    private String timeOut=""; 
    private String project=""; 
    private String description=""; 
    private String progress=""; 

    public void setWeather(String weather) { 
     this.weather = weather; 
    } 

    public String getWeather() { 
     return weather; 
    } 

    public void setDate(String date) { 
     this.date = date; 
    } 

    public String getDate() { 
     return date; 
    } 

    public void setStatus(String status) { 
     this.status = status; 
    } 

    public String getStatus() { 
     return status; 
    } 

    public void setTimeIn(String timeIn) { 
     this.timeIn = timeIn; 
    } 

    public String getTimeIn() { 
     return timeIn; 
    } 

    public void setTimeOut(String timeOut){ 
     this.timeOut=timeOut; 
    } 

    public String getTimeOut() 
    { 
     return timeOut; 
    } 

    public void setProject(String project){ 
     this.project=project; 
    } 

    public String getProject() 
    { 
     return project; 
    } 

    public void setProgress(String progress){ 
     this.progress=progress; 
    } 

    public String getProgress() 
    { 
     return progress; 
    } 

    public void setDescription(String description){ 
     this.description=description; 
    } 

    public String getDescription() 
    { 
     return description; 
    } 



} 

Как передать массив и, наконец, показать их в действии B? Спасибо

ответ

0

Шаг №1: Есть SearchResultsParcelable или Serializable.

Шаг № 2: Используйте getParcelableArrayList() или getSerializable() вместо getString() для извлечения стоимости из дополнительных услуг Bundle.

+0

Если я не хочу извлекать значение, просто передайте только, какой способ использовать? –

+1

@Seng: Если вы не хотите получать значение, не отправляйте значение в первую очередь. – CommonsWare

+0

Используйте сериализуемый для передачи объектов bean, а также ваш класс bean-класса реализует сериализуемый –

Смежные вопросы