将Jsonarray从活动A传递给活动B?

时间:2017-02-07 07:44:18

标签: android android-intent android-intent-chooser

我有两个Activity A和B.I在Activity A中调用API并在JsonArray中获取响应。现在我需要从Activity A中获取活动B中的Whole JsonArray。我可以这样做吗?

4 个答案:

答案 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");
    }