使用serializable发送对象的arraylist

Neh*_*agi 6 serialization android arraylist

我将我的JSON数据存储到对象的arraylist中,我的对象类是Venue,我使用序列化的片段将该数据传递到另一个活动但是我没有在actvity中接收任何值.它正在接收额外的.bundle不是null.

我的代码是:

分段:

 Intent intent = new Intent(getActivity(), SearchVenueActivity.class);

 //pass values
 Bundle bundle = new Bundle();
 bundle.putSerializable("arrayListVenue",arrayListVenue);
 intent.putExtras(bundle);
 startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

活动:

if (getIntent().hasExtra("arrayListVenue")) {
    Bundle bundle = getIntent().getExtras();
    if(bundle!=null)
        rowItems = (ArrayList<Venue>) bundle.getSerializable("arrayListVenue");
    else
        Log.e("null","null");
}
Run Code Online (Sandbox Code Playgroud)

地点类别:

public class Venue implements Serializable{

    String venue_id;
    String venue_name;
    String venue_address;
    String venue_city;

    public String getVenue_city() {
        return venue_city;
    }

    public void setVenue_city(String venue_city) {
        this.venue_city = venue_city;
    }

    public Venue(String venue_id, String venue_name, String venue_address, String venue_city, String venue_zip, String venue_phone, String venue_mobile) {
        this.venue_id = venue_id;
        this.venue_name = venue_name;
        this.venue_address = venue_address;
        this.venue_city = venue_city;

        this.venue_zip = venue_zip;
        this.venue_phone = venue_phone;
        this.venue_mobile = venue_mobile;
    }

    public String getVenue_id() {
        return venue_id;
    }

    public void setVenue_id(String venue_id) {
        this.venue_id = venue_id;
    }

    public String getVenue_name() {
        return venue_name;
    }

    public void setVenue_name(String venue_name) {
        this.venue_name = venue_name;
    } 
}
Run Code Online (Sandbox Code Playgroud)

jee*_*mar 15

试试这种方式可能对你有帮助

首先你想做

类Venue实现Serializable

public class Venue implements Serializable {
  /**
  * 
  */

private static final long serialVersionUID = 1L;

 }
Run Code Online (Sandbox Code Playgroud)

在你的FirstActivity中这样做

  ArrayList<Venue> VenueArrayList = new ArrayList<Venue>();

  Intent intent = new Intent(this,secondActivity.class);
  intent.putExtra("VenueArrayList", VenueArrayList);
Run Code Online (Sandbox Code Playgroud)

在你的SecondActivity中这样做

  ArrayList<Venue> VenueArrayList;
  VenueArrayList = (ArrayList<Venue>) getIntent().getSerializableExtra(
        "VenueArrayList");
Run Code Online (Sandbox Code Playgroud)


Jai*_*oni 3

用于intent.putParcelableArrayListExtra("arrayListVenue",arrayListVenue);将 arraylist 放入 Intent 并用于intent.getParcelableArrayExtra("arrayListVenue")从 SearchVenueActivity 活动中的 Intent 获取 arraylist
编辑 使用 Parcelable 的教程