xml:
<com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/pull"> </com.handmark.pulltorefresh.library.PullToRefreshListView>
Activity:
public class Fragment1 extends Fragment{ // List<Fragone_bean.DataBean> arr=new ArrayList(); List<Fragone_bean.NewslistBean> arr = new ArrayList(); private View view; private PullToRefreshListView pull; private ListView lv; private Adapter adapter; int i=0; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.fragment1,null); pull = (PullToRefreshListView) view.findViewById(R.id.pull); return view; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); pull.setMode(PullToRefreshBase.Mode.BOTH); lv = pull.getRefreshableView(); adapter = new Adapter(); lv.setAdapter(adapter); // new MyAsyncTask().execute("http://www.93.gov.cn/93app/data.do?channelId=0&startNum=0"); new MyAsyncTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page=1"); pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { arr.clear(); i=0; new MyAsyncTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+i); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { i=i+20; new MyAsyncTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10&page="+i); } }); } class MyAsyncTask extends AsyncTask<String,Void,String> { @Override protected String doInBackground(String... strings) { String string=""; StringBuffer stringBuffer=new StringBuffer(); try { URL url = new URL(strings[0]); // URLConnection urlConnection = url.openConnection(); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); while((string=bufferedReader.readLine())!=null) { stringBuffer.append(string); } } catch (Exception e) { e.printStackTrace(); } return stringBuffer.toString(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Fragone_bean fragone_bean = new Gson().fromJson(s, Fragone_bean.class); // List<Fragone_bean.DataBean> data = fragone_bean.getData(); List<Fragone_bean.NewslistBean> newslist = fragone_bean.newslist; arr.addAll(newslist); adapter.notifyDataSetChanged(); pull.onRefreshComplete(); } } class Adapter extends BaseAdapter { @Override public int getCount() { return arr.size(); } @Override public Object getItem(int i) { return arr.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { Sj sj = new Sj(); // Fragone_bean.DataBean dataBean = arr.get(i); Fragone_bean.NewslistBean dataBean = arr.get(i); if(view==null) { view = View.inflate(getActivity(), R.layout.pulllist, null); sj.image=view.findViewById(R.id.iv); sj.tv=view.findViewById(R.id.tv); view.setTag(sj); }else { sj = (Sj) view.getTag(); } // sj.tv.setText(dataBean.getSUBTITLE()); sj.tv.setText(dataBean.title); DisplayImageOptions options=new DisplayImageOptions.Builder() .cacheInMemory(true)//进行内存缓存 .cacheOnDisk(true)//进行sd卡缓存 .showImageOnLoading(R.drawable.zhengzaijiazai) // 设置正在下载中的图片 .showImageForEmptyUri(R.drawable.zhengzaijiazai) //没有请求地址时 .showImageOnFail(R.drawable.zhengzaijiazai)//下载错误时 .bitmapConfig(Bitmap.Config.RGB_565)//设置图片质量 .build(); // ImageLoader.getInstance().displayImage(dataBean.getIMAGEURL(),sj.image,options); ImageLoader.getInstance().displayImage(dataBean.picUrl,sj.image,options); return view; } } class Sj{ ImageView image; TextView tv; } }