Android XListView下拉刷新和上拉加载更多

来源:互联网 发布:斑马二维码打印软件 编辑:程序博客网 时间:2024/06/01 08:15
1、首先引入xListView_lib库到自己的Demo上
2、使用步骤
它的使用步骤跟普通的ListView是一样,这也是选择它的原因。使用非常简单方便。

布局如下so easy:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent" >     <me.maxwin.view.XListView    android:id="@+id/xlv"    android:layout_width="match_parent"    android:layout_height="match_parent" />   </RelativeLayout> 


按照ListView的方式使用XlistView


package com.itydl.xlistviewdemo;   import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List;   import me.maxwin.view.XListView; import me.maxwin.view.XListView.IXListViewListener; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.TextView;   public class MainActivity extends Activity {     private XListView mXListView;   List<String> datas = new ArrayList<String>();   private MyAdapter adapter;   private boolean isLoadMore;//是否正在加载更多数据的标记       private long preTime;//上一次刷新的当前系统时间毫秒值   private Handler handler = new Handler(){     public void handleMessage(android.os.Message msg) {       if(isLoadMore){         //消息是上拉加载更多         initDatas();         isLoadMore = false;         //刷新完毕,关闭上拉加载效果         mXListView.stopLoadMore();       }else{         //消息是下拉刷新         datas.clear();         initDatas();         //刷新完毕,关闭下拉刷新效果         mXListView.stopRefresh();       }       // 刷新listview       adapter.notifyDataSetChanged();     };   };     @Override  protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);     initDatas();     mXListView = (XListView) findViewById(R.id.xlv);     //设置适配器到ListView     adapter = new MyAdapter();     mXListView.setAdapter(adapter);     initListener();   }       private void initListener() {     //设置可以下拉刷新,默认就是true     mXListView.setPullRefreshEnable(true);           //设置可以上拉加载,默认是false     mXListView.setPullLoadEnable(true);           mXListView.setXListViewListener(new IXListViewListener() {               @Override      public void onRefresh() {         // 下拉刷新,实际发送Handler         //发送一个空消息,延迟两秒后告知刷新数据         handler.sendMessageDelayed(Message.obtain(), 2000);         //添加上一次刷新的时间:         if(preTime != 0){           mXListView.setRefreshTime(refreshData(preTime));         }         preTime = System.currentTimeMillis();       }         private String refreshData(long preTime) {        //刷新完毕,关闭上拉加载效果       mXListView.stopLoadMore();         //刷新完毕,关闭下拉刷新效果        mXListView.stopRefresh();        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(preTime));       }         @Override      public void onLoadMore() {         //标记正在加载更多,发送Handler         isLoadMore = true;         handler.sendMessageDelayed(Message.obtain(), 2000);       }     });   }     /**模拟网络数据*/  private void initDatas() {     //实际开发应该子线程执行     for (int i = 0; i < 50; i++) {       datas.add("我是第" + i + "条数据");     }   }     private class MyAdapter extends BaseAdapter{       @Override    public int getCount() {       if(datas != null){         return datas.size();       }       return 0;     }       @Override    public Object getItem(int position) {       if(datas != null){         return datas.get(position);       }       return null;     }       @Override    public long getItemId(int position) {       return position;     }       @Override    public View getView(int position, View convertView, ViewGroup parent) {       //模拟item为TextView       TextView textView = new TextView(MainActivity.this);       textView.setText(getItem(position)+"");       textView.setTextColor(Color.GREEN);       return textView;     }   } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

原文链接:http://blog.csdn.net/qq_32059827/article/details/53167655


阅读全文
0 0
原创粉丝点击