package com.example.week03lianxi.fragment;
import android.os.AsyncTask;
import android.os.Bundle;
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.pulltolibrary.PullToRefreshBase;
import com.example.pulltolibrary.PullToRefreshListView;
import com.example.week03lianxi.R;
import com.example.week03lianxi.adapter.MyAdapter;
import com.example.week03lianxi.bean.MyData;
import com.example.xlistview.data.URLData;
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
/**
-
A simple {@link Fragment} subclass.
*/
public class PFragment extends Fragment {private PullToRefreshListView pull;
private String mUrl=“http://www.xieast.com/api/news/news.php?page=”;
List<MyData.DataBean> data=new ArrayList<>();
private int index=1;
private MyAdapter adapter;@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v = inflater.inflate(R.layout.fragment_p, null);
initView(v);
adapter = new MyAdapter(getActivity(),data);
pull.setAdapter(adapter);
//设置可以下拉上啦
pull.setMode(PullToRefreshBase.Mode.BOTH);
new MyTask().execute(mUrl+index);
setListener();
return v;
}private void setListener() {
pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2() {
@Override
public void onPullDownToRefresh(PullToRefreshBase refreshView) {
data.clear();
index=1;
new MyTask().execute(mUrl+index);} @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { index++; new MyTask().execute(mUrl+index); } });
}
private void initView(View v) {
pull = (PullToRefreshListView) v.findViewById(R.id.pull);}
class MyTask extends AsyncTask<String,Void,List<MyData.DataBean>> {
@Override protected List<MyData.DataBean> doInBackground(String... strings) { String jsonStr = URLData.getJsonStr(strings[0]); Gson gson=new Gson(); MyData myData = gson.fromJson(jsonStr, MyData.class); return myData.getData(); } @Override protected void onPostExecute(List<MyData.DataBean> dataBeans) { super.onPostExecute(dataBeans); data.addAll(dataBeans); adapter.notifyDataSetChanged(); pull.onRefreshComplete(); }
}
}