public class Frag01 extends Fragment {
private ListView listView;
String strURL = "https://www.apiopen.top/novelApi";
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag01, container, false);
//第一步 :权限
//第二部:找空间
listView = view.findViewById(R.id.listview);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//第三部:数据( 网络请求数据 使用handler+子线程)
new Thread() {
@Override
public void run() {
super.run();
//第四部:判断网络
boolean isnNet = HttpUtil.isNetworkConnected(getActivity());
String s = "";
if (isnNet) {
//第五步:如果有网络就加载网络数据
s = HttpUtil.requestString(strURL);
//得到数据后发送给handler进行解析
} else {
//如果没网就就加载数据库
}
//第六步 把数据发送给主线程
Message message = new Message();
message.what = 0;
message.obj = s;
handler.sendMessage(message);
}
}.start();
//适配器
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
//第七步:得到数据并解析
String s = (String) msg.obj;
//解析
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(s, JsonBean.class);
ArrayList<JsonBean.DataBean> list = jsonBean.getData();
//第八步:展示数据到listview上
listView.setAdapter(new MyAdapter(list,getActivity()));
break;
}
}
};
}