package com.example.day4_2.frag;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import com.example.day4_2.HttpUtil;
import com.example.day4_2.R;
import com.example.day4_2.adapter.MyAdapter;
import com.example.day4_2.bean.JsonBean;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
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.frag1, container, false);
//第一步 :权限
//第二部:找空间
listView = view.findViewById(R.id.listview1);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//第三部:数据( 网络请求数据 使用handler+子线程)
new Thread() {
@Override
public void run() {
super.run();
//第四部:判断网络
boolean isNet = HttpUtil.isNotworkConnected(getActivity());
String s = "";
if (isNet) {
//第五步:如果有网络就加载网络数据
s = HttpUtil.requestString(strURL);
//得到数据后发送给handler进行解析
} else {
//如果没网就就加载数据库
}
//第六步 把数据发送给主线程
Message massage = new Message();
massage.what = 0;
massage.obj = s;
handler.sendMessage(massage);
}
}.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);
List<JsonBean.DataBean> list=jsonBean.getData();
//第八步:展示数据到listview上
listView.setAdapter(new MyAdapter(list,getActivity()));
break;
}
}
};
}
解析+展示
猜你喜欢
转载自blog.csdn.net/weixin_44668058/article/details/87705782
今日推荐
周排行