2016-05-21 2 views
2

Как я могу передать список массивов из одной активности в другую деятельность с использованием намерения.Как передать список массивов с использованием намерения в android

От активности

ArrayList<ServicesInfo> bookedService = new ArrayList<ServicesInfo>();` 
    Intent intent = new Intent(getActivity() , Proceedtocart.class); 
       intent.putExtra("Listview",bookedService); 
       startActivity(intent); 

К деятельности

bookedService = (ArrayList<BookedInfo>) getIntent().getSerializableExtra("Listview"); 

во время работы я получаю сообщение об ошибке, как "java.lang.RuntimeException посылки не в состоянии мобилизовывать значение андроида"

Помогите решить эту проблему

+0

Я реализовал parcelable в моем ServiceInfo массиве, но все же ошибка происходя –

+0

Покажите нам ваши 'ServiceInfo' –

+0

Попробуйте intent.putParcelableArrayListExtra ("ключ", my_list) ;. Это решит вашу проблему. Для этого вам нужно сделать свой идентификатор ServiceInfo. – Wanted

ответ

1

Попробуйте это:

Intent intent = new Intent(this, NextActivity.class); 
intent.putStringArrayListExtra("Listview", bookedService); 
startActivity(intent); 

и на NextActivity:

yourArrayList = getIntent().getStringArrayListExtra("Listview"); 
1

Вы можете использовать

public class ContactInfo { 

    private String name; 
    private String surname; 
    private int idx; 

// get and set methods 
} 



public class ContactInfo implements Parcelable { 

     private String name; 
     private String surname; 
     private int idx; 

    // get and set method 

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

    @Override 
    public void writeToParcel(Parcel dest, int flags) { 
     dest.writeString(name); 
     dest.writeString(surname); 
     dest.writeInt(idx); 
    } 

    // Creator 
    public static final Parcelable.Creator CREATOR 
     = new Parcelable.Creator() { 
     public ContactInfo createFromParcel(Parcel in) { 
     return new ContactInfo(in); 
    } 

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

    // "De-parcel object 
    public ContactInfo(Parcel in) { 
     name = in.readString(); 
     surname = in.readString(); 
     idx = in.readInt(); 
    } 
} 

Помещенный

Intent i = new Intent(MainActivity.this, ActivityB.class); 
// Contact Info 
ContactInfo ci = createContact("Francesco", "Surviving with android", 1); 
i.putExtra("contact", ci); 

Получить

Intent i = getIntent(); 

ContactInfo ci = i.getExtras().getParcelable("contact"); 

tv.setText(ci.toString()); // tv is a TextView instance 
Смежные вопросы