我有两个Activity A和B.I在Activity A中调用API并在JsonArray中获取响应。现在我需要从Activity A中获取活动B中的Whole JsonArray。我可以这样做吗?
答案 0 :(得分:1)
@mohsinmemon
将JsonArray转换为String然后将其附加到Intent并发送它。
JSONObject jObject = new JSONObject("Json Response");
Intent obj_intent = new Intent(ActivityA.this, ActivityB.class);
Bundle b = new Bundle();
b.putString("Array",jObject.toString());
obj_intent.putExtras(b);
在ActivityB中
Bundle b = getIntent().getExtras();
String Array=b.getString("Array");
答案 1 :(得分:1)
试试这个,
In Activity A:
Intent intent = new Intent(ActivityA.this, ActivityB.class);
intent.putExtra("jsonArray", jsonArray.toString());
startActivity(intent);
In Activity B:
Intent intent = getIntent();
String jsonArray = intent.getStringExtra("jsonArray");
try {
JSONArray array = new JSONArray(jsonArray);
} catch (JSONException e) {
e.printStackTrace();
}
答案 2 :(得分:0)
如果你没有从第一个开始第二个活动;声明Json是公共静态的 否则只是将它作为意图中的包传递。
答案 3 :(得分:0)
首先,您应该将数据转换为活动A中的ArrayList,如下所示:
ArrayList<YourCustomDataModel> dataArrayList= null;
String jsonInternets = //"Your Json Response"
if (jsonInternets != null && !jsonInternets.isEmpty()) {
Gson gson = new Gson();
YourCustomDataModel[] dataModels= gson.fromJson(jsonInternets,
YourCustomDataModel[].class);
dataArrayList= new ArrayList<YourCustomDataModel>(Arrays.asList(dataModels));
}
在此步骤之后,您可以将此Arraylist放在您的意图中,如下所示:
Intent intent=new Intent(ActivityA.this,ActiviyB.class);
intent.putExtra("data",dataArrayList);
startActivity(intent);
现在,在Activity B中执行此步骤后,您可以将数据作为ArrayList获取,如下所示:
if (getIntent().getExtras()!=null&&getIntent().getExtras().getSerializable("data")!=null)
{
ArrayList<YourCustomDataModel> dataArrayList=getIntent().getExtras().getSerializable("data");
}