import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; 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.bwie.xlistview.XListView; import com.google.gson.Gson; import java.util.ArrayList; import java.util.List; public class ConcernFragment extends Fragment { private XListView listView; private List<News.DataBean> list; private NewsAdapter adapter; private int page =1; private Handler handler = new Handler(); private static String url = "http://www.xieast.com/api/news/news.php?page="; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //引入布局 View v = inflater.inflate(R.layout.fragment_concern,container,false); listView = v.findViewById(R.id.plv_news); return v; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); //封装类的list list = new ArrayList<>(); //Activity的适配器 adapter = new NewsAdapter(getActivity(),list); listView.setAdapter(adapter); //加载更多 listView.setPullLoadEnable(true); //刷新 listView.setPullRefreshEnable(true); //刷新事件 listView.setXListViewListener(new XListView.IXListViewListener() { @Override public void onRefresh() { page = 1; getData(page,false); } @Override public void onLoadMore() { page++; getData(page,true); } }); //getData getData(1,false); } //getData private void getData(final int page,final boolean b) { new AsyncTask<String,Integer,String>(){ @Override protected String doInBackground(String... strings) { return HttpUtils.getStringFromHttp(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); News news= gson.fromJson(s,News.class); if (!b){ list.clear(); } if(news.getData() == null){ return; } handler.postDelayed(new Runnable() { @Override public void run() { if(b){ listView.stopLoadMore(); }else { listView.stopRefresh(); listView.setRefreshTime("刚刚"); } } },2000); list.addAll(news.getData()); adapter.notifyDataSetChanged(); } }.execute(url+page); } }
Fragment的显示页面刷新使用
猜你喜欢
转载自blog.csdn.net/cxx13700/article/details/82756703
今日推荐
周排行