Передать jsonarray из действия A в действие B?

У меня есть два API вызова Activity A и BI в Activity A, и я получаю ответ в JsonArray. Теперь мне нужно получить весь JsonArray в Деятельности B из Деятельности A. Как я могу это сделать?

4 ответа

Попробуй это,

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

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

Если вы не начинаете второе действие с первого; объявите, что Json как public static, просто передайте это как связку в намерении.

Сначала вы должны преобразовать ваши данные в виде ArrayList в упражнении A, как показано ниже:

    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");
    }
Другие вопросы по тегам