我有一个问题,无法将ArrayList<JSONObject>
传递给新的活动。
在我的搜索活动中,我使用以下代码:
intent.putParcelableArrayListExtra("data", resultsArray);
但是我遇到了一个“错误参数”错误。
我参考了这个 Stack Overflow 的问题。 Intent.putExtra List
public class SearchActivity extends AppCompatActivity {
List<JSONObject> resultsArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
//other stuff
resultsArray = new ArrayList<JSONObject>();
}
public void goToActivity(){
Intent intent = new Intent(SearchActivity.this, SearchResultsListActivity.class);
intent.putParcelableArrayListExtra("data", resultsArray);
startActivity(intent);
}
// ...
}
我的SearchResultsListAcivity只是一个列表
public class SearchResultsListAcivity extends AppCompatActivity {
public ArrayList<JSONObject> searchResultsArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
// .. .
searchResultsArray = getStringArrayListExtra("data");
ArrayAdapter<JSONObject> adapter = new ArrayAdapter<JSONObject>(this, android.R.layout.simple_list_item_1, android.R.id.text1, searchResultsArray);
ListView lv = (ListView) findViewById(R.id.listViewSearchResults);
lv.setAdapter(adapter);
}
}
我也尝试了这里列出的实现答案:如何将自定义对象的ArrayList传递到新活动中?:
Intent intent = new Intent(getApplicationContext(), displayImage.class);
Bundle bundleObject = new Bundle();
bundleObject.putSerializable("KEY", arrayList);
intent.putExtras(bundleObject);
但是我仍然收到了错误的参数信息。
JSONObject
没有实现Parcelable
或Serializable
接口。您必须将其作为String[]
或其他形式进行传递,并手动管理序列化和反序列化。 - Kevin Krumwiede