我想做一个从安卓凌空抽射中获取数据的查看页。 我已经解析了 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。