您的位置:首页 > 其它

XlistView刷新加载和Banner轮播

2017-11-17 16:06 134 查看
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.TextView;

import com.bwei.monthsynthesize_demo.R;
import com.bwei.monthsynthesize_demo.bean.XlvData;
import com.bwei.monthsynthesize_demo.utils.NetWorlUtil;
import com.bwie.xlistviewlibrary.View.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youth.banner.Banner;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

public class ChildFrag2 extends Fragment implements XListView.IXListViewListener {

private String urlstrs = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
private String[] urls1 = {
"http://f2.kkmh.com/image/160715/42qtqpfsd.webp-w188",
"http://f2.kkmh.com/image/171114/Q4Cv0N6hO.webp-w640",
"http://f2.kkmh.com/image/160511/chrrrrs4v.webp-w640",
"http://f2.kkmh.com/image/171114/9c70n8gv4.webp-w640"
};
private XListView xListView;
List<XlvData.DataBean> list = new ArrayList<XlvData.DataBean>();
private Myxlvadapter myxlvadapter;
private ImageLoader instance;

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.childfrag2_layout, null);
return view;
}

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
xListView = view.findViewById(R.id.xlv);
View inflate = View.inflate(getActivity(), R.layout.banner_layout, null);
//获取bannerview
Banner vbanner = inflate.findViewById(R.id.banner);
//设置图片工具
vbanner.setImageLoader(new MyImageloader());
//设置图片
vbanner.setImages(Arrays.asList(urls1));
//开启
vbanner.start();
//添加到XListView头部
xListView.addHeaderView(inflate);
instance = ImageLoader.getInstance();
//设置支持上下拉加载
xListView.setPullLoadEnable(true);
//设置xlistView事件
xListView.setXListViewListener(this);
//设置适配器
myxlvadapter = new Myxlvadapter();
xListView.setAdapter(myxlvadapter);
//获取数据
getInit();
}

//初始化数据
private void getInit() {
new MAsyncTask().execute(urlstrs);
}

//下拉刷新
@Override
public void onRefresh() {
list.clear();
getInit();
}

//上拉加载
@Override
public void onLoadMore() {
getInit();
}

//适配器
private class Myxlvadapter extends BaseAdapter {
@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int i) {
return null;
}

@Override
public long getItemId(int i) {
return 0;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Holder holder = null;
if (view == null) {
holder = new Holder();
view = View.inflate(getActivity(), R.layout.childfrag_item_layout, null);
holder.tv = view.findViewById(R.id.tv);
holder.iv = view.findViewById(R.id.iv);
view.setTag(holder);
} else {
holder = (Holder) view.getTag();
}
holder.tv.setText(list.get(i).getNews_title());
instance.displayImage(list.get(i).getPic_url(), holder.iv,new NetWorlUtil().getDisk());
return view;
}
}

class Holder {
TextView tv;
ImageView iv;
}

//刷新完成后隐藏头部和底部
public void complet(){
xListView.stopRefresh();
xListView.stopLoadMore();
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
xListView.setRefreshTime(simpleDateFormat.format(date));
}

//Asynctask类
private class MAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... strings) {
return NetWorlUtil.getNetJson(strings[0]);
}

@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
XlvData xlvData = new Gson().fromJson(s, XlvData.class);
List<XlvData.DataBean> data1 = xlvData.getData();
list.addAll(data1);
myxlvadapter.notifyDataSetChanged();
complet();
}
}

private class MyImageloader extends com.youth.banner.loader.ImageLoader{
@Override
public void displayImage(Context context, Object path, ImageView imageView) {
ImageLoader.getInstance().displayImage((String) path,imageView);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: