今天我们讲下如何从网络解析Json数据并通过Fragment填充到ViewPager中。
再次明确一点:对于使用Fragment来填充ViewPager的实现,我们自定义的Fragment所继承的Fragment
是v4包下的,还有就是MainActivity继承的是FragmentActivity。
好了,接下来我们看一下具体的实现步骤吧。
一、在activity_main.xml文件中声明一个ViewPager控件和一个LinearLayout控件
这个Linear控件是用来填充我们切换界面时的图标显示及变化的。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:orientation="vertical">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="6" >
</android.support.v4.view.ViewPager>
<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:background="@android:color/holo_orange_light"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
二、接下来是明确我们想要得到的数据并把它们封装到一个类中,然后得到该类的集合
①这里我们先贴一下所要解析的Json数据的格式吧
②在上图中,我们想要得到内层的“subject”和"photo"所对应的数据,所以这里我们把两者封装到了一个News类中:
package com.example.text_05_bean;
import java.io.Serializable;
public class News implements Serializable {
private String subject;
private String photo;
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
}
③接下来是解析网络数据并得到News对象的集合,这里我们定义了一个HttpUtils工具类:
package com.example.text_05_http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.Malformed