如何向我的自定义类添加数组并传递Intent

时间:2014-10-02 11:33:48

标签: android android-intent

我只是想将数组添加到我的自定义类中,比如“Dog”类到数组,然后将它放到Intent中,之后我想使用getIntent()得到额外的东西.getExtra()......但是我很挣扎。

ArrayList<String> list = new ArrayList<String>();


JSONArray jobList = (JSONArray) response.get("sonuclar");
JSONObject jsonObject;

for( int i = 0; i < jobList.length(); i++) {
     jsonObject = jobList.getJSONObject(i);

     String jobTitle     = jsonObject.getString("baslik");
     String firmName     = jsonObject.getString("firma_adi");
     String jobDate      = jsonObject.getString("tarih");
     String jobSummary   = "" ;
     String jobImageURL  = jsonObject.getString("logo");

      jobItem = new JobItem(jobTitle,firmName, jobDate, jobSummary, jobImageURL);
      list.add(jobItem);
}
 // this code will start new intent
 goJobListView(list);

/*  intent view  */
private void goJobListView(Object[] results) {

    Intent jobIntent = new Intent(this, JobListActivity.class);
    jobIntent.putExtra("job_data", results);
    startActivity(jobIntent);
}

这是我的麻烦,我如何从另一个活动中获取该自定义类JobItem。

谢谢。

1 个答案:

答案 0 :(得分:0)

  

如何向数组中添加自定义类并传递Intent

简单方法是标记自定义类Serializable,然后使用intent.putExtra(key,custom_class_object_arraylist);将数据发送到下一个活动。

在下一个Activity中使用intent.getSerializableExtra方法从Intent获取自定义对象数组:

Intent intent = getIntent();
ArrayList<JobItem> job_data = 
    (ArrayList<JobItem>)intent.getSerializableExtra("job_data");

第二个好方法是将JobItem类标记为Parcelable,然后使用Intent.putParcelableArrayListExtraIntent.getParcelableArrayListExtra从Intent发送并获取自定义对象列表。

有关更多帮助,您可以看到以下示例: Android: Passing ArrayList of Object Within an Intent