使用 Android Volley 将 JSON 数组作为bundle传递到片段



我想做一个从安卓凌空抽射中获取数据的查看页。 我已经解析了 JSON,如下所示。

    HashMap<String, String> event = new HashMap<String, String>();
        JSONArray timings = object1.getJSONArray("periods");

        for (int t=0; t<timings.length(); t++){
            JSONObject timeObject = timings.getJSONObject(t);
            String period = timeObject.getString("periodName");
            periodList.put("",period);
            System.out.println(period);
            event.put(TAG_PERIOD,period);
        }

现在我想发送上课时间,如下所示:

生成的图像

我想将解析的数组发送到片段。以下是寻呼机适配器和片段类的代码。

寻呼机适配器:

    public class PagerAdapter extends FragmentPagerAdapter {
int mNumOfTabs;
TabFragment1 fragA, fragB,fragC,fragD,fragE,fragF;

public PagerAdapter(FragmentManager fm, int NumOfTabs) {
    super(fm);
    this.mNumOfTabs = NumOfTabs;
}
public void setFragments(Context c){
    // Set up the simple base fragments
    fragA = new TabFragment1();
    fragB = new TabFragment1();
    fragC = new TabFragment1();
    fragD = new TabFragment1();
    fragE = new TabFragment1();
    fragF = new TabFragment1();
}
@Override
public Fragment getItem(int position) {
    Fragment fragment;
    switch (position) {
        case 0:
            fragment = fragA;
            return fragment;
        case 1:
            fragment = fragB;
            return fragment;
        case 2:
            fragment = fragC;
            return fragment;
        case 3:
            fragment = fragD;
            return fragment;
        case 4:
            fragment = fragE;
            return fragment;
        case 5:
            fragment = fragF;
            return fragment;
        default:
            return null;
    }

}
@Override
public int getCount() {
    return mNumOfTabs;
}

}

片段:

    public class TabFragment1 extends android.support.v4.app.Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
 return inflater.inflate(R.layout.tab_fragment_1, container, false);

}

}

我是安卓新手,想知道如何将解析的数据传递到片段。

Bundle args = new Bundle();
args.putString("response",jsonarray.toString());    
ListFrag newFragment = new ListFrag ();
newFragment.setArguments(args);

并在片段中获取捆绑包的值,

Bundle b = getArguments();
String s = b.getString("response");
JSONArray array=new JSONArray(s);

使用此方法进行 JSON 解析:

public static <T> T JsonParse(T t, String response)
            throws JsonSyntaxException, IOException, XmlPullParserException {
        InputStream in = new ByteArrayInputStream(response.getBytes());
        JsonReader reader;
        reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
        Gson gson = new Gson();
        t = (T) gson.fromJson(reader, t.getClass());
        reader.close();
        return t;
    }

创建两个模型类:

1.public class Model_main{
  public Arraylist<Model_period> mPeriodList=new ArrayList<Model_period>();
}
2.public class Model_period{
   @SerializedName("periodName")
   public String periodName;
}

您可以直接在 Budle 中传递 jsonResponse 字符串,然后在 striicific viewpager 中解析该响应。

使用 Above 方法和上述模型类进行 Json 解析

这种回应来自沃利。

Model_Main model_main = JsonParse(new Model_Main(), response);

Arraylist<Model_period>  mList = model_main.mPeriodList;

它非常简单和有用。

请从 android studio 项目中的依赖项中添加 gson 库,或在 eclipse 的 Lib 文件夹中添加 Gson.rar。

最新更新