【问题标题】:Passing an JSON Object from an Activity to a Fragment将 JSON 对象从 Activity 传递到 Fragment
【发布时间】:2016-05-18 17:31:12
【问题描述】:

我有一个使用片段的活动。我只是想将此 Activity 中的 JSONObject 传递给 Fragment。我该怎么做?

【问题讨论】:

标签: android android-fragments


【解决方案1】:

这样做: 假设这是 jsonObject:JSONObject obj=...; 要添加您的片段,请执行以下操作:

<Your_fragment_name> myFrag=<Your_fragment_name>();
    Bundle bundle=new Bundle();
    bundle.putString("key",obj.toString());
    Frag frag=new Frag();
    frag.setArguments(bundle);
    getSupportFragmentManager().beginTransaction().replace(<your_container_id>,myFrag).commit();

然后在您的片段的 onCreateView() 中添加它以获取 json 回来

 Bundle bundle=getArguments();
    String jsonString=bundle.getString("key");
    JSONObject obj;
    try {
        obj=new JSONObject(jsonString);
    } catch (JSONException e) {
        e.printStackTrace();
    }

【讨论】:

    【解决方案2】:

    如果您的活动中有数据,则可以从片段中获取。尝试使用 toString() 将 JSON 转换为字符串,然后从片段中获取该字符串。

    【讨论】:

    • 我很久没有使用 Android SDK 但我相信你可以将 Object 添加到 Intent 中,只需将 JSONObject 放入 Intent 并在另一侧恢复它(通过一些转换)
    【解决方案3】:

    您可以在活动中公开 JSON 对象,然后您可以在片段中使用它访问它

    getActivity().jsonObject
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-12
      相关资源
      最近更新 更多