XListView的使用方法

来源:互联网 发布:淘宝上买代写靠谱吗 编辑:程序博客网 时间:2024/04/20 05:30

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;    }}
原创粉丝点击