![](/img/trans.png)
[英]How to send an object from one Android Activity to another using Intents?
[英]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().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.