Android菜鸟日记28-listView下拉更新[仿新浪微博]

 

Android菜鸟日记

28 listView下拉更新[仿新浪微博]

 

老用ios的下拉刷新 觉得用户体验很好 考虑自己做一个

本来以为是使用slidingDrawer 弄了半天才发现不是。

在网上收集了下资料,找到个还不错的[附件有]

修改了内容做给HDEasyCall用了。

 

如果完全解释那个 太费时间了

还是把它当做一个控件来用吧 里面的东西别管他了。

 

静态效果

 


Android菜鸟日记28-listView下拉更新[仿新浪微博]

 

动态自己联想吧 就那个意思了

 

 

 

 

 

 

 

代码在附件里面[附件里面的是原版的不是我修改过的 我修改过的在HDEasyCall项目里面]

 

这里就拿未修改版本做说明

 

首先你需要把以前你在LAYOUT XML配置的ListView换成

PullToRefreshListView

 

完整代码 

 

 

package com.markupartist.android.example.pulltorefresh;

import java.util.Arrays;
import java.util.LinkedList;

import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ArrayAdapter;

import com.markupartist.android.widget.PullToRefreshListView;
import com.markupartist.android.widget.PullToRefreshListView.OnRefreshListener;

public class PullToRefreshActivity extends ListActivity {    
    private LinkedList<String> mListItems;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pull_to_refresh);

        // Set a listener to be invoked when the list should be refreshed.
        ((PullToRefreshListView) getListView()).setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh() {
                // Do work to refresh the list here.
                new GetDataTask().execute();
            }
        });
		//onRefresh必须覆写
		//OnRefreshListener是PullToRefreshListView定义的一个接口
		//setOnRefreshListener是PullToRefreshListView定义的  其他listView没有

        mListItems = new LinkedList<String>();
        mListItems.addAll(Arrays.asList(mStrings));

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, mListItems);

        setListAdapter(adapter);
    }

    private class GetDataTask extends AsyncTask<Void, Void, String[]> {

        @Override
        protected String[] doInBackground(Void... params) {
            // Simulates a background job.
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                ;
            }
            return mStrings;
        }

        @Override
        protected void onPostExecute(String[] result) {
        	 // 进度条读完需要加载的内容
        	 // 下面那条是给适配器中的数值增加内容
            mListItems.addFirst("Added after refresh...");

           
            ((PullToRefreshListView) getListView()).onRefreshComplete();

            super.onPostExecute(result);
        }
    }

    private String[] mStrings = {
            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",
            "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis",
            "Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
            "Allgauer Emmentaler"};
}
}

 

 

 

 

 

 

 

 

 

2011-11-23

poolo

 

 

 

看看这个:http://blog.csdn.net/berber78/article/details/7387271

 

你可能感兴趣的:(ListView)