//bundle传值
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
urls = bundle.getString("urls");
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_news, container, false);
xListView = view.findViewById(R.id.xlistview_news);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
list = new ArrayList<>();
newsAdapter = new NewsAdapter(getActivity(),list);
xListView.setAdapter(newsAdapter);
xListView.setPullRefreshEnable(true);
xListView.setPullLoadEnable(true);
//上拉加载下拉刷新
xListView.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page =1;
isMoreLoad =false;
getData(page);
handler.postDelayed(new Runnable() {
@Override
public void run() {
xListView.stopRefresh();
xListView.setRefreshTime("刚刚");
}
},2000);
}
@Override
public void onLoadMore() {
page ++;
isMoreLoad = true;
getData(page);
handler.postDelayed(new Runnable() {
@Override
public void run() {
xListView.stopLoadMore();
xListView.setRefreshTime("刚刚");
}
},2000);
}
});
getData(page);
}
private void getData(int page) {
//网络请求
if (!NetWorkUtils.isNetWorkAvailable(getActivity())){
return;
}
new AsyncTask<String, Integer, String>() {
@Override
protected String doInBackground(String... strings) {
String result = HttpUtils.getStringFromHttp(strings[0]);
return result;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson = new Gson();
News news = gson.fromJson(s,News.class);
if (news!=null){
if (news.getData()!=null){
list.clear();
}
list.addAll(news.getData());
newsAdapter.notifyDataSetChanged();
}
}
}.execute(urls+page);
}
}
public class NetWorkUtils { public static boolean isNetWorkAvailable(Context context){ boolean available = false; ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null){ available = networkInfo.isAvailable(); } return available; } }