簡體   English   中英

如何從一個活動向另一個活動發送和接收 json 對象?

[英]How to send and receive the json object from one activity to another?

我在從活動到另一個活動發送和接收 google json 對象時遇到問題。

 List<Integer> selectedScamMediumIds = scamMediumHorizontalAdapter.getSelectedScamMediumIds();
 JsonObject scamData = new JsonObject();
 JsonArray scamMediumJsonArray = new JsonArray();

 for (Integer scamMediumId:selectedScamMediumIds) {
     JsonPrimitive jsonPrimitive = new JsonPrimitive(scamMediumId);
     scamMediumJsonArray.add(jsonPrimitive);
 }
 scamData.add("scam_medium_id",scamMediumJsonArray);
 scamData.addProperty("scam_category_id", scamCategoryId);
 scamData.addProperty("scam_sub_category_id", scamSubCategoryId + "");
 scamData.addProperty("scammer_phone", phoneNumber.getText().toString());
 scamData.addProperty("scammer_location", scammerLocation.getText().toString());
 scamData.addProperty("lat", lattitude);
 scamData.addProperty("lng", longitude);

 Intent intent = new Intent(ScamLookUpActivity.this, ScamSearchActivity.class);
 intent.putExtra("scamDatas", scamData.toString());
 intent.putExtra("scamSubCategoryText", subCategoryTitle);
 startActivity(intent);

上面的方法我都試過了,不知道對不對。 請幫助我如何從一個活動向另一個活動發送和接收 json 對象。

你正在做正確的方法。 要在另一個活動中獲得它,您可以繼續

if (getIntent().getExtras() != null) {
                String scamDatas = getIntent().getStringExtra("scamDatas");
                String scamSubCategoryText  = getIntent().getStringExtra("scamSubCategoryText");
                try {
                  JsonParser parser = new JsonParser(); 
                  JsonObject scamDataJsonObject = parser.parse(scamDatas).getAsJsonObject(); 
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }

嘗試

1.通過 Intent 發送字符串

intent.put("scamData", scamData.getAsString(); //or scamData.toString();

2.從其他活動中的意圖接收字符串

String scamDataStr = getIntent().getStringExtra("scamData");

3.使用JsonParser解析json

new JsonParser().parse(scamDataStr);

您可以簡單地將整個 JSONObject 作為字符串。 像這樣的東西:

i.putString("scamData", jsonObj.toString);

然后在 MovieProductActivity 你可以

JSONObject jsonObj = new JSONObject(getIntent().getStringExtra("scamData"));
  • 通過意圖發送字符串

intent.put("scamData",scamData.getAsString();

  • 從其他活動中的意圖接收字符串

StringscamDataStr = getIntent().getStringExtra("scamData");

  • 使用 JsonParser 解析 json

新的 JsonParser().parse(scamDataStr);

對於 kotlin 愛好者,

使用數據類並使用@Parcelize 注解,使用 Parcelable 接口擴展。

可以在活動的情況下使用意圖,一種在片段之間移動的方法 - 使用捆綁。

Bundle().apply{
 putParcelable("some_unique_key",data)
}

val data = arguments.getParcelable<DataType>("some_unique_key")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM