Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将JSONObject的ArrayList传递给新活动_Java_Android_Android Intent_Android Activity_Arraylist - Fatal编程技术网

Java 无法将JSONObject的ArrayList传递给新活动

Java 无法将JSONObject的ArrayList传递给新活动,java,android,android-intent,android-activity,arraylist,Java,Android,Android Intent,Android Activity,Arraylist,我无法将ArrayList传递给新活动 在我的搜索活动中,我使用 intent.putParcelableArrayListExtra("data", resultsArray); 但是我得到了一个错误的参数错误 我用这个问题作为参考。 但是,我再次遇到了错误的参数错误。我只是将JSON数组转换为字符串数组,然后使用putStringArrayListExtra()将其传递给下一个活动。您可以在SearchResultsListActivity活动中将其解码回JSON数组 i) 将JSON数

我无法将
ArrayList
传递给新活动

在我的搜索活动中,我使用

intent.putParcelableArrayListExtra("data", resultsArray);
但是我得到了一个
错误的参数错误

我用这个问题作为参考。


但是,我再次遇到了错误的参数错误。

我只是将JSON数组转换为字符串数组,然后使用
putStringArrayListExtra()
将其传递给下一个活动。您可以在
SearchResultsListActivity
活动中将其解码回JSON数组

i) 将JSON数组(或列表)转换为字符串数组

JSONArray arr = new JSONArray(yourJSONresponse);
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr.length(); i++){
list.add(arr.getJSONObject(i).toString());}
iii)在下一个活动中最终解码

Bundle stringArrayList = getIntent().getExtras();
ArrayList<String> list = stringArrayList.getStringArrayList("string_array");
JSONArray arr = new JSONArray(list);
Bundle stringArrayList=getIntent().getExtras();
ArrayList=stringArrayList.getStringArrayList(“字符串数组”);
JSONArray arr=新JSONArray(列表);

我还没有尝试过这段代码,但至少它应该能让您了解如何解决问题。您可能需要做一些小的更改(如果for循环不起作用,最后一行可能会替换它,等等)

JSONObject
没有实现
Parcelable
Serializable
。您必须以
字符串[]
或其他形式传递它,并自行管理序列化和反序列化。
Intent intent = new Intent(getApplicationContext(), displayImage.class);            
Bundle bundleObject = new Bundle();
bundleObject.putSerializable("KEY", arrayList);
intent.putExtras(bundleObject);
JSONArray arr = new JSONArray(yourJSONresponse);
List<String> list = new ArrayList<String>();
for(int i = 0; i < arr.length(); i++){
list.add(arr.getJSONObject(i).toString());}
Intent intent = new Intent(SearchActivity.this, SearchResultsListActivity.class);
intent.putStringArrayListExtra("string_array", list);
startActivity(intent);
Bundle stringArrayList = getIntent().getExtras();
ArrayList<String> list = stringArrayList.getStringArrayList("string_array");
JSONArray arr = new JSONArray(list);