0

我在 Activity A 中有两个 Activity A 和 BI 调用 API,并在 JsonArray 中获得响应。现在我需要从活动 A 中获取活动 B 中的 Whole JsonArray。我该怎么做?

4

4 回答 4

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();
    }
于 2017-02-07T08:13:17.927 回答
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);

在活动 B

Bundle b = getIntent().getExtras();
String Array=b.getString("Array");
于 2017-02-07T07:48:37.493 回答
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);

现在,在活动 B 中的这些步骤之后,您可以将数据作为 ArrayList 获取,如下所示:

 if (getIntent().getExtras()!=null&&getIntent().getExtras().getSerializable("data")!=null)
    {
        ArrayList<YourCustomDataModel> dataArrayList=getIntent().getExtras().getSerializable("data");
    }
于 2017-02-07T08:01:07.517 回答
0

如果您不是从第一个开始第二个活动;将 Json 声明为公共静态,否则只需将其作为包传递。

于 2017-02-07T07:47:35.703 回答