/**
* author:Created by WangZhiQiang on 2017-10-19.
* pullToRefresh 联网 ,解析, 上下拉
*/
public class ChildFragment extends Fragment {
int page = 1;//请求接口的第几页;
String baseUrl = "http://gank.io/api/data/Android/10/";
private PullToRefreshListView plv;
//定义一个总的集合, 以后上拉加载的时候,往这个集合里追加数据,更新适配器;
List<Product.ResultsBean> list = new ArrayList<>();
private MAdapter mAdapter;
private ListView lv;
private Banner banner;
String[] imagUrls = {"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg"};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_b, null);
//这个view是头部
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);
//得到plv封装的listview,方便我们添加头部
lv = plv.getRefreshableView();
lv.addHeaderView(header_banner);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getNetData(page);//获取list集合的方法;
getNetBannerData();
mAdapter = new MAdapter();//主线程继续往下走,和刚才开启的线程互不影响;0.0001
lv.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);
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.ResultsBean> results = product.getResults();
list.addAll(results);
mAdapter.notifyDataSetChanged();
plv.onRefreshComplete();
}
}
private void getNetBannerData() {
banner.setImages(Arrays.asList(imagUrls));//设置图片集合
banner.setImageLoader(new BannerLoader());
banner.start();
}
/**
* 加载轮播图的类;--Banner的
*/
class BannerLoader extends ImageLoader {
//要实现具体如哪个功能或框架来加载图片
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
com.nostra13.universalimageloader.core.ImageLoader instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance();
instance.displayImage((String) path, imageView);
}
}
}
* author:Created by WangZhiQiang on 2017-10-19.
* pullToRefresh 联网 ,解析, 上下拉
*/
public class ChildFragment extends Fragment {
int page = 1;//请求接口的第几页;
String baseUrl = "http://gank.io/api/data/Android/10/";
private PullToRefreshListView plv;
//定义一个总的集合, 以后上拉加载的时候,往这个集合里追加数据,更新适配器;
List<Product.ResultsBean> list = new ArrayList<>();
private MAdapter mAdapter;
private ListView lv;
private Banner banner;
String[] imagUrls = {"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg",
"https://img-my.csdn.net/uploads/201407/26/1406383299_1976.jpg"};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_b, null);
//这个view是头部
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);
//得到plv封装的listview,方便我们添加头部
lv = plv.getRefreshableView();
lv.addHeaderView(header_banner);
return view;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
getNetData(page);//获取list集合的方法;
getNetBannerData();
mAdapter = new MAdapter();//主线程继续往下走,和刚才开启的线程互不影响;0.0001
lv.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);
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.ResultsBean> results = product.getResults();
list.addAll(results);
mAdapter.notifyDataSetChanged();
plv.onRefreshComplete();
}
}
private void getNetBannerData() {
banner.setImages(Arrays.asList(imagUrls));//设置图片集合
banner.setImageLoader(new BannerLoader());
banner.start();
}
/**
* 加载轮播图的类;--Banner的
*/
class BannerLoader extends ImageLoader {
//要实现具体如哪个功能或框架来加载图片
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
com.nostra13.universalimageloader.core.ImageLoader instance = com.nostra13.universalimageloader.core.ImageLoader.getInstance();
instance.displayImage((String) path, imageView);
}
}
}