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);