我正面临着从活动向另一项活动发送和接收谷歌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对象到另一个活动。
答案 0 :(得分:3)
你正在做正确的方法。要在其他活动中获取它,您可以继续
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 :(得分:2)
尝试
1。通过Intent发送字符串
intent.put("scamData", scamData.getAsString(); //or scamData.toString();
2. 从其他活动中的意图接收字符串
String scamDataStr = getIntent().getStringExtra("scamData");
3. 使用JsonParser
new JsonParser().parse(scamDataStr);
答案 2 :(得分:0)
您可以简单地将整个JSONObject作为字符串。像这样:
origin
然后在MovieProductActivity中你可以
free()
答案 3 :(得分:0)
intent.put(“ scamData”,scamData.getAsString();
字符串scamDataStr = getIntent()。getStringExtra(“ scamData”);
新的JsonParser()。parse(scamDataStr);
答案 4 :(得分:0)
对于Kotlin爱好者,
使用数据类并使用@Parcelize批注,并使用Parcelable接口进行扩展。
可以在活动时使用意图,这是在片段之间移动的一种方法-使用捆绑软件。
Bundle().apply{
putParcelable("some_unique_key",data)
}
val data = arguments.getParcelable<DataType>("some_unique_key")