xlistview上拉刷新下拉加载以及多条目加载
package bwie.com.zhoukao2_lianxi;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.gson.Gson;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.Date;
import bwie.com.xlistviewlibrary.view.XListView;
public class Frag1 extends Fragment {
private int type =1;
private int page =1;
private XListView xlv;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag1, container, false);
//初始化
xlv = view.findViewById(R.id.xlistview);
//设置加载更多 上啦shuaxin
xlv.setPullRefreshEnable(true);
xlv.setPullLoadEnable(true);
//设置点击事件
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {
page=1;
type=1;
new MyAsy().execute();
}
@Override
public void onLoadMore() {
page++;
type=2;
new MyAsy().execute();
}
});
new MyAsy().execute();
return view;
}
class MyAsy extends AsyncTask<String,String,String>
{
private MyAdapter myAdapter;
@Override
protected String doInBackground(String... strings) {
String meassage="";
try
{
String path ="http://www.xieast.com/api/news/news.php?page="+page;
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(4000);
connection.connect();
InputStream inputStream = connection.getInputStream();
byte[] b = new byte[1024];
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
int len =0;
while ((len = inputStream.read(b))!=-1)
{
outputStream.write(b,0,len);
}
meassage = outputStream.toString().trim();
inputStream.close();
connection.disconnect();
}catch (Exception e)
{
}
return meassage;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Log.i("onPostExecute","s是不是"+s);
if(s!=null)
{
Gson gson = new Gson();
Bean bean = gson.fromJson(s, Bean.class);
if(bean!=null)
{
if (type ==1)
{
myAdapter = new MyAdapter(getActivity(), bean);
xlv.setAdapter(myAdapter);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String ss = format.format(date);
xlv.setRefreshTime(ss);
xlv.stopRefresh();
myAdapter.notifyDataSetChanged();
}
},1000);
}
if (type ==2)
{
myAdapter = new MyAdapter(getActivity(), bean);
xlv.setAdapter(myAdapter);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
xlv.stopLoadMore();
myAdapter.notifyDataSetChanged();
}
},1000);
}
}
}
}
}
}
创建bean类
package bwie.com.zhoukao2_lianxi;
import java.io.Serializable;
import java.util.List;
public class Bean implements Serializable
{
private String msg;
private int code;
private List<DataBean> data;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String uniquekey;
private String title;
private String date;
private String category;
private String author_name;
private String url;
private String thumbnail_pic_s;
private String thumbnail_pic_s02;
private String thumbnail_pic_s03;
public String getUniquekey() {
return uniquekey;
}
public void setUniquekey(String uniquekey) {
this.uniquekey = uniquekey;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getAuthor_name() {
return author_name;
}
public void setAuthor_name(String author_name) {
this.author_name = author_name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getThumbnail_pic_s() {
return thumbnail_pic_s;
}
public void setThumbnail_pic_s(String thumbnail_pic_s) {
this.thumbnail_pic_s = thumbnail_pic_s;
}
public String getThumbnail_pic_s02() {
return thumbnail_pic_s02;
}
public void setThumbnail_pic_s02(String thumbnail_pic_s02) {
this.thumbnail_pic_s02 = thumbnail_pic_s02;
}
public String getThumbnail_pic_s03() {
return thumbnail_pic_s03;
}
public void setThumbnail_pic_s03(String thumbnail_pic_s03) {
this.thumbnail_pic_s03 = thumbnail_pic_s03;
}
}
}
//适配器内容
package bwie.com.zhoukao2_lianxi;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.ImageLoader;
public class MyAdapter extends BaseAdapter {
Context context;
Bean bean;
private ViewHolder1 viewHolder1;
private ViewHolder2 viewHolder2;
private ViewHolder3 viewHolder3;
public MyAdapter(Context context, Bean bean) {
this.bean = bean;
this.context = context;
}
@Override
public int getViewTypeCount() {
return 3;
}
@Override
public int getItemViewType(int position) {
return position % 3;
}
@Override
public int getCount() {
return bean.getData().size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
int type = getItemViewType(position);
switch (type) {
case 0:
if (convertView == null) {
viewHolder1 = new ViewHolder1();
convertView = View.inflate(context, R.layout.frag_01, null);
viewHolder1.img1 = convertView.findViewById(R.id.img1);
viewHolder1.title1 = convertView.findViewById(R.id.title1);
viewHolder1.data1 = convertView.findViewById(R.id.data1);
convertView.setTag(viewHolder1);
} else {
viewHolder1 = (ViewHolder1) convertView.getTag();
}
viewHolder1.data1.setText(bean.getData().get(position).getDate());
viewHolder1.title1.setText(bean.getData().get(position).getTitle());
ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder1.img1);
break;
case 1:
if (convertView == null) {
viewHolder2 = new ViewHolder2();
convertView = View.inflate(context, R.layout.frag_02, null);
viewHolder2.img1 = convertView.findViewById(R.id.img1);
viewHolder2.img2 = convertView.findViewById(R.id.img2);
viewHolder2.title2 = convertView.findViewById(R.id.title2);
viewHolder2.data2 = convertView.findViewById(R.id.data2);
convertView.setTag(viewHolder2);
} else {
viewHolder2 = (ViewHolder2) convertView.getTag();
}
viewHolder2.data2.setText(bean.getData().get(position).getDate());
viewHolder2.title2.setText(bean.getData().get(position).getTitle());
ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s02(), viewHolder2.img1);
ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder2.img2);
break;
case 2:
if (convertView == null) {
viewHolder3 = new ViewHolder3();
convertView = View.inflate(context, R.layout.frag_03, null);
viewHolder3.img1 = convertView.findViewById(R.id.img1);
viewHolder3.img2 = convertView.findViewById(R.id.img2);
viewHolder3.img3 = convertView.findViewById(R.id.img3);
viewHolder3.title3 = convertView.findViewById(R.id.title3);
viewHolder3.data3 = convertView.findViewById(R.id.data3);
convertView.setTag(viewHolder3);
} else {
viewHolder3 = (ViewHolder3) convertView.getTag();
}
viewHolder3.data3.setText(bean.getData().get(position).getDate());
viewHolder3.title3.setText(bean.getData().get(position).getTitle());
ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder3.img1);
ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder3.img2);
ImageLoader.getInstance().displayImage(bean.getData().get(position).getThumbnail_pic_s(), viewHolder3.img3);
break;
}
return convertView;
}
class ViewHolder1 {
ImageView img1;
TextView title1;
TextView data1;
}
class ViewHolder2 {
ImageView img1;
ImageView img2;
TextView title2;
TextView data2;
}
class ViewHolder3 {
ImageView img1;
ImageView img2;
ImageView img3;
TextView title3;
TextView data3;
}
}