上拉加载+下拉刷新(XListview)

来源:互联网 发布:javascript教程 编辑:程序博客网 时间:2024/06/12 21:50

java代码

public class Fragment01 extends Fragment {    private ListView lv;    private String goods_url = "http://api.expoon.com/AppNews/getNewsList/type/1/p/";    private List<GsonBean01.DataBean> data;    private List<GsonBean01.DataBean> datas;    private Myadapter adapter;    private int pg = 1;    private XListView xListView;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        View view = inflater.inflate(R.layout.fragment01,container,false);        xListView = (XListView) view.findViewById(R.id.xlistview);        xListView.setPullLoadEnable(true);        xListView.setPullRefreshEnable(true);        new AsyncTask<String,Integer,String>(){            @Override            protected String doInBackground(String... params) {                String jsonStr = new Util().getJson(goods_url);                return jsonStr;            }            @Override            protected void onPostExecute(String s) {                super.onPostExecute(s);                GsonBean01 gsonBean01 = new Gson().fromJson(s, GsonBean01.class);                data = gsonBean01.getData();                adapter = new Myadapter();                xListView.setAdapter(adapter);            }        }.execute();        xListView.setXListViewListener(new XListView.IXListViewListener() {            @Override            public void onRefresh() {                new AsyncTask<String,Integer,String>(){                    @Override                    protected String doInBackground(String... params) {                        String jsonStr = new Util().getJson(goods_url);                        return jsonStr;                    }                    @Override                    protected void onPostExecute(String s) {                        super.onPostExecute(s);                        GsonBean01 gsonBean01 = new Gson().fromJson(s, GsonBean01.class);                        data = gsonBean01.getData();                        adapter = new Myadapter();                        xListView.setAdapter(adapter);                    }                }.execute();                xListView.stopRefresh();            }            @Override            public void onLoadMore() {                pg++;                new AsyncTask<String,Integer,String>(){                    @Override                    protected String doInBackground(String... params) {                        String jsonStr = new Util().getJson(goods_url);                        return jsonStr;                    }                    @Override                    protected void onPostExecute(String s) {                        super.onPostExecute(s);                        GsonBean01 gsonBean01 = new Gson().fromJson(s, GsonBean01.class);                        datas = gsonBean01.getData();                        data.addAll(datas);                        adapter = new Myadapter();                        xListView.setAdapter(adapter);                        adapter.notifyDataSetChanged();                    }                }.execute();                xListView.stopLoadMore();            }        });        return view;    }    class Myadapter extends BaseAdapter {        @Override        public int getCount() {            return data.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) {            ViewHolder holder;            if (convertView == null){                convertView =  View.inflate(getActivity(),R.layout.item01,null);                holder =  new ViewHolder();                holder.tv = (TextView) convertView.findViewById(R.id.textView2);                holder.img = (ImageView) convertView.findViewById(R.id.imageView);                convertView.setTag(holder);            }else{                holder = (ViewHolder) convertView.getTag();            }            ImageLoader.getInstance().displayImage(data.get(position).getPic_url(),holder.img);            holder.tv.setText(data.get(position).getNews_title());            return convertView;        }        class  ViewHolder{            TextView tv;            ImageView img;        }    }}

对应的xml布局

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <com.bawei.wzq.wzlibrary.view.XListView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/xlistview"></com.bawei.wzq.wzlibrary.view.XListView></RelativeLayout>