package com.bawei.wss.jinritotiao; import android.content.Context; import android.os.AsyncTask; import android.os.Bundle; 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.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshListView; import com.nostra13.universalimageloader.core.ImageLoader; import com.youth.banner.Banner; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * author:Created by WangZhiQiang on 2017/10/24. */ public class ChildFragment extends Fragment { int page=1;//请求接口的第几页; String baseUrl = "http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1"; private PullToRefreshListView plv; private ImageLoader imageLoaderInstances; //定义一个总的集合, 以后上拉加载的时候,往这个集合里追加数据,更新适配器; List<Product.DataBean> list = new ArrayList<Product.DataBean>(); private MAdapter mAdapter; String[] imagUrls = {"https://img-my.youkuaiyun.com/uploads/201407/26/1406383299_1976.jpg", "https://img-my.youkuaiyun.com/uploads/201407/26/1406383299_1976.jpg", "https://img-my.youkuaiyun.com/uploads/201407/26/1406383299_1976.jpg", "https://img-my.youkuaiyun.com/uploads/201407/26/1406383299_1976.jpg", "https://img-my.youkuaiyun.com/uploads/201407/26/1406383299_1976.jpg"}; private com.nostra13.universalimageloader.core.ImageLoader imageLoader; private ListView lv; private Banner banner; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_b, null); View header_banner = inflater.inflate(R.layout.header_banner, null); banner = (Banner) header_banner.findViewById(R.id.banner); plv = (PullToRefreshListView)view.findViewById(R.id.plv); lv = plv.getRefreshableView(); lv.addHeaderView(header_banner); return view; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); getNetData(page); getBanner(); mAdapter = new MAdapter();//主线程继续往下走,和刚才开启的线程互不影响;0.0001 plv.setAdapter(mAdapter); plv.setMode(PullToRefreshBase.Mode.BOTH);//上下拉都支持 plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { list.clear(); new MAsync().execute(baseUrl+1); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { page++; getNetData(page); } }); } private void getNetData(int page) { new MAsync().execute(baseUrl+page); } private class MAdapter extends BaseAdapter { @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } /** * 多条目 * @param i * @param view * @param viewGroup * @return */ @Override public View getView(int i, View view, ViewGroup viewGroup) { view = View.inflate(getActivity(), R.layout.item01, null); TextView textview = (TextView)view.findViewById(R.id.desc); ImageView iv = (ImageView)view.findViewById(R.id.iv); textview.setText(list.get(i).getTitle()); imageLoaderInstances = ImageLoader.getInstance(); imageLoaderInstances.displayImage(list.get(i).getUserImg(),iv); return view; } } class MAsync extends AsyncTask<String,Void,String> { @Override protected String doInBackground(String... strings) { return NetWordUtils.getNetjson(strings[0]); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); Product product = gson.fromJson(s, Product.class); List<Product.DataBean> data1 = product.getData(); list.addAll(data1); mAdapter.notifyDataSetChanged(); plv.onRefreshComplete(); } }
//banner,上边记得初始化组件 private void getBanner(){ banner.setImages(Arrays.asList(imagUrls)); banner.setImageLoader(new BannerImageLoader()); banner.start(); } class BannerImageLoader extends com.youth.banner.loader.ImageLoader { @Override public void displayImage(Context context, Object path, ImageView imageView) { com.nostra13.universalimageloader.core.ImageLoader imageLoader1 = com.nostra13.universalimageloader.core.ImageLoader.getInstance(); imageLoader1.displayImage((String) path,imageView); } } }