当前位置:操作系统 > 安卓/Android >>

Android下拉刷新ListView——RTPullListView


使用过程中可以对下拉显示效果进行自定义,如果要修改顶部下拉显示,则只需修改pulllist_head.xml即可,修改底部获取更多则修改list_footview.xml即可。
接下来是在Activity中使用:
[java]
/**
 * PullListView
 * @author Ryan
 *
 */ 
public class RTPullListViewActivity extends Activity { 
    private static final int INTERNET_FAILURE = -1; 
    private static final int LOAD_SUCCESS = 1; 
    private static final int LOAD_MORE_SUCCESS = 3; 
    private static final int NO_MORE_INFO = 4; 
    private static final int LOAD_NEW_INFO = 5; 
     
    private RTPullListView pullListView; 
    private ProgressBar moreProgressBar; 
     
    private List<String> dataList; 
    private ArrayAdapter<String> adapter; 
     
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        pullListView = (RTPullListView) this.findViewById(R.id.pullListView); 
         
        dataList = new ArrayList<String>(); 
        for (int i = 0; i < 5; i++) { 
            dataList.add("Item data "+i); 
        } 
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataList); 
        pullListView.setAdapter(adapter); 
         
        //添加listview底部获取更多按钮(可自定义) 
        LayoutInflater inflater = LayoutInflater.from(this); 
        View view = inflater.inflate(R.layout.list_footview, null); 
        RelativeLayout footerView =(RelativeLayout) view.findViewById(R.id.list_footview); 
        moreProgressBar = (ProgressBar) view.findViewById(R.id.footer_progress); 
        pullListView.addFooterView(footerView); 
         
        //下拉刷新监听器 
        pullListView.setonRefreshListener(new OnRefreshListener() { 
             
            @Override 
            public void onRefresh() { 
                new Thread(new Runnable() { 
                     
                    @Override 
                    public void run() { 
                        try { 
                            //模拟数据刷新 
                            Thread.sleep(2000); 
                            dataList.clear(); 
                            for (int i = 0; i < 5; i++) { 
                                dataList.add("Item data "+i); 
                            } 
                            myHandler.sendEmptyMessage(LOAD_NEW_INFO); 
                        } catch (InterruptedException e) { 
                            e.printStackTrace(); 
                        } 
                    } 
                }).start(); 
            } 
        }); 
         
        //获取更多监听器 
        footerView.setOnClickListener(new OnClickListener() { 
             
            @Override 
            public void onClick(View v) { 
 
                moreProgressBar.setVisibility(View.VISIBLE); 
                 
                new Thread(new Runnable() { 
                     
                    @Override 
                    public void run() { 
          &n
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,