1、首先下载第三方xlistview的数据包
2、复制src下view包中的三个java文件
3、复制res包下的三个xml文件放入layout中
4、复制图片和values中string.xml文件中的数据到相应的文件夹下
5、在布局文件直接书写(另一种listview)
<view.XListView
android:id="@+id/xlv"
android:layout_width="match_parent"
android:layout_height="match_parent"></view.XListView>
6、在onCreat()方法书写
package com.example.xlistview;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.google.gson.Gson;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import MyBean.Bean;
import Utils.MyTask;
import adapter.MyAdapter;
import view.XListView;
import static android.R.id.list;
public class MainActivity extends AppCompatActivity {
private int pageIndex=1;
private XListView xlv;
ArrayList<Bean.DataBean> list = new ArrayList<>();
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 1) {
xlv.stopLoadMore();
} else {
Date date = new Date(System.currentTimeMillis());
//yyyy-MM-dd HH:mm:ss
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
String updateTime = simpleDateFormat.format(date);
//设置刷新时间
xlv.setRefreshTime(updateTime);
xlv.stopRefresh();//关闭头部视图
}
}
};
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载布局
setContentView(R.layout.activity_main);
//找控件
xlv = (XListView) findViewById(R.id.xlv);
//支持下拉刷新
xlv.setPullRefreshEnable(true);
//支持上拉加载更多
xlv.setPullLoadEnable(true);
//设置监听事件
xlv.setXListViewListener(new XListView.IXListViewListener() {
@Override
public void onRefresh() {//刷新回调的接口
//请求第一页的数据
MyTask myTask=new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Gson gson=new Gson();
Bean bean = gson.fromJson(jsonstr, Bean.class);
//添加到大集合对象中
list.addAll(0,bean.getData());
//设置适配器
setAdapter();
//延迟关闭头部视图
handler.sendEmptyMessageDelayed(2,500);
}
});
myTask.execute("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=1");
}
@Override
public void onLoadMore() {//加载更多回调的接口方法
pageIndex++;
MyTask myTask=new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Gson gson=new Gson();
Bean bean = gson.fromJson(jsonstr, Bean.class);
//将最新请求的数据添加到大集合对象中,
list.addAll(bean.getData());
//设置适配器
setAdapter();
//关闭底部视图
handler.sendEmptyMessageDelayed(1,500);
}
});
myTask.execute("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page="+pageIndex);
}
});
//初使化
requestNetData();
}
private void requestNetData() {
MyTask myTask=new MyTask(new MyTask.Icallbacks() {
@Override
public void updateUiByjson(String jsonstr) {
Gson gson=new Gson();
Bean bean = gson.fromJson(jsonstr, Bean.class);
//添加到大集合对象中
list.addAll(bean.getData());
//设置适配器
setAdapter();
}
});
myTask.execute("http://www.yulin520.com/a2a/impressApi/news/mergeList?pageSize=10&page=5");
}
public void setAdapter(){
if(myAdapter==null){
myAdapter = new MyAdapter(this, list);
xlv.setAdapter(myAdapter);
}else{
myAdapter.notifyDataSetChanged();
}
}
}
adapter(参考格式)
package com.example.day2017_10_21demo.Adapter;
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.example.day2017_10_21demo.Bean.Bean;
import com.example.day2017_10_21demo.ImageLoder.MyApp;
import com.example.day2017_10_21demo.R;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.List;
/**
* Created by 墨鸦 on 2017/10/21.
*/
public class Adapter extends BaseAdapter{
private Context context;
private List<Bean.DataBean> list;
public Adapter(Context context, List<Bean.DataBean> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHodler hodler;
if (convertView==null){
hodler=new ViewHodler();
convertView=View.inflate(context, R.layout.layout_xlistview,null);
hodler.imageView= (ImageView) convertView.findViewById(R.id.img);
hodler.textView1= (TextView) convertView.findViewById(R.id.text01);
hodler.textView2= (TextView) convertView.findViewById(R.id.text02);
convertView.setTag(hodler);
}else {
hodler= (ViewHodler) convertView.getTag();
}
//加载图片
ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),hodler.imageView, MyApp.getDefaultDisplayOption());
hodler.textView1.setText(list.get(position).getNews_title());
hodler.textView2.setText(list.get(position).getNews_summary());
return convertView;
}
class ViewHodler{
ImageView imageView;
TextView textView1;
TextView textView2;
}
}