解析并展示

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;


        }
    }
};

}

猜你喜欢

转载自blog.csdn.net/ddg123_/article/details/87551514