使用PullToRefreshListView 区分上拉还是下拉

public class MainActivity extends Activity {
    
    private ArrayList<String> mListItems;
    private PullToRefreshListView mListView;
    private SampleListAdapter mAdapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample);
        
        // 设置初期数据
        mListItems = new ArrayList<String>();
        for (int i = 1; i <= 10; i++) {
            mListItems.add("Item " + Integer.toString(i));
        }

        // 设置ListView
        mListView = (PullToRefreshListView) findViewById(R.id.list_view);
        mAdapter = new SampleListAdapter();
        mListView.setAdapter(mAdapter);
        
        // 设置PullToRefresh
        mListView.setMode(Mode.BOTH);
        mListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){
 
            // 下拉Pulling Down
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                // 下拉的时候数据重置
                mListItems = new ArrayList<String>();
                for (int i = 1; i <= 10; i++) {
                    mListItems.add("Item " + Integer.toString(i));
                }
                mAdapter.notifyDataSetChanged();
                
                new FinishRefresh().execute();
            }
            
            // 上拉Pulling Up
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                // 上拉的时候添加选项
                int count = mListItems.size();
                mListItems.add("Item " + Integer.toString(++count));
                mAdapter.notifyDataSetChanged();
                
                new FinishRefresh().execute();
            }
 
        });
        
    }
    
    private class SampleListAdapter extends BaseAdapter {
        
        @Override
        public int getCount() {
            return mListItems.size();
        }
 
        @Override
        public Object getItem(int index) {
            return mListItems.get(index);
        }
 
        @Override
        public long getItemId(int index) {
            return index;
        }
 
        @Override
        public View getView(int index, View view, ViewGroup arg2) {
            if(view == null){
                LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.list_item, null);
            }
            TextView textView = (TextView)view.findViewById(R.id.listItemText);
            textView.setText(mListItems.get(index));
            return view;
        }
    }
 
    private class FinishRefresh extends AsyncTask<Void, Void, Void>{
        @Override
        protected Void doInBackground(Void... params) {
            return null;
        }
 
        @Override
        protected void onPostExecute(Void result){
            mListView.onRefreshComplete();
        }
    }
}

public class MainActivity extends Activity {
    
    private ArrayList<String> mListItems;
    private PullToRefreshListView mListView;
    private SampleListAdapter mAdapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample);
        
        // 设置初期数据
        mListItems = new ArrayList<String>();
        for (int i = 1; i <= 10; i++) {
            mListItems.add("Item " + Integer.toString(i));
        }

        // 设置ListView
        mListView = (PullToRefreshListView) findViewById(R.id.list_view);
        mAdapter = new SampleListAdapter();
        mListView.setAdapter(mAdapter);
        
        // 设置PullToRefresh
        mListView.setMode(Mode.BOTH);
        mListView.setOnRefreshListener(new OnRefreshListener2<ListView>(){
 
            // 下拉Pulling Down
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                // 下拉的时候数据重置
                mListItems = new ArrayList<String>();
                for (int i = 1; i <= 10; i++) {
                    mListItems.add("Item " + Integer.toString(i));
                }
                mAdapter.notifyDataSetChanged();
                
                new FinishRefresh().execute();
            }
            
            // 上拉Pulling Up
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                // 上拉的时候添加选项
                int count = mListItems.size();
                mListItems.add("Item " + Integer.toString(++count));
                mAdapter.notifyDataSetChanged();
                
                new FinishRefresh().execute();
            }
 
        });
        
    }
    
    private class SampleListAdapter extends BaseAdapter {
        
        @Override
        public int getCount() {
            return mListItems.size();
        }
 
        @Override
        public Object getItem(int index) {
            return mListItems.get(index);
        }
 
        @Override
        public long getItemId(int index) {
            return index;
        }
 
        @Override
        public View getView(int index, View view, ViewGroup arg2) {
            if(view == null){
                LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                view = inflater.inflate(R.layout.list_item, null);
            }
            TextView textView = (TextView)view.findViewById(R.id.listItemText);
            textView.setText(mListItems.get(index));
            return view;
        }
    }
 
    private class FinishRefresh extends AsyncTask<Void, Void, Void>{
        @Override
        protected Void doInBackground(Void... params) {
            return null;
        }
 
        @Override
        protected void onPostExecute(Void result){
            mListView.onRefreshComplete();
        }
    }
}

猜你喜欢

转载自blog.csdn.net/huangpeigui/article/details/41039783
今日推荐