package com.example.fragment;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;
import com.example.adapter.MyAdapter;
import com.example.bean.News;
import com.example.bean.NewsBean;
import com.example.util.HttpUtils;
import com.example.weekone_demo.R;
import com.google.gson.Gson;
import java.util.List;
/**
* @Author:tiguan
* @E-mail:
* @Date:2019/2/15 11:38 AM
* @Description:描述信息
*/
public class NewsFragment extends Fragment {
private ListView list_view;
private String dataUrl="http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_news, container, false);
list_view = view.findViewById(R.id.list_view);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//1.判断网络
boolean connect = HttpUtils.isNetConnect(getActivity());
if (connect){
//有网
Toast.makeText(getActivity(),"有网",Toast.LENGTH_SHORT).show();
//请求数据
new MyAsyncTask().execute(dataUrl);
}else {
//没网
Toast.makeText(getActivity(),"没网",Toast.LENGTH_SHORT).show();
}
}
/**
* 创建AsyncTask
*/
public class MyAsyncTask extends AsyncTask<String,Void,String>{
@Override
protected void onPostExecute(String s) {
Log.i("sss", "请求数据: "+s);
//解析数据
Gson gson = new Gson();
NewsBean newsBean = gson.fromJson(s, NewsBean.class);
List<News> data = newsBean.getData();
Log.i("sss", "解析数据: "+data.toString());
//展示
MyAdapter adapter = new MyAdapter(getActivity(),data);
list_view.setAdapter(adapter);
super.onPostExecute(s);
}
@Override
protected String doInBackground(String... strings) {
String data = HttpUtils.getNetData(strings[0]);
return data;
}
}
}