Android PullToRefresh pull-up and pull-down refresh
Github link:
Https://github.com/chrisbanes/Android-PullToRefresh
1. Set Listview
PullToRefreshListView defined in the layout File
Xml Code
- Android: id = "@ + id/list_view"
- Android: layout_width = "match_parent"
- Android: layout_height = "match_parent"/>
2. Set the Mode
- PullToRefreshListView mListView = (PullToRefreshListView) findViewById (R. id. list_view );
- MListView. setMode (Mode. BOTH); The supported Mode is as follows:
- Mode. BOTH: supports pulling up and down at the same time
- Mode. PULL_FROM_START: only Pulling Down is supported.
- Mode. PULL_FROM_END: only Pulling Up can be pulled Up.3. Listener
If Mode is set to Mode. BOTH, you need to set the listener OnRefreshListener2 and implement the onPullDownToRefresh () and onPullUpToRefresh () methods.
If Mode is set to Mode. PULL_FROM_START or Mode. PULL_FROM_END, you must set the listener OnRefreshListener and implement the onRefresh () method. Of course, you can also set it to OnRefreshListener2, but only the onPullDownToRefresh () method is called when Mode. PULL_FROM is called, and only the onPullUpToRefresh () method is called when Mode. PULL_FROM is called.
4. The specific code is as follows:
- Public class MainActivity extends Activity {
-
- Private ArrayList MListItems;
- Private PullToRefreshListView mListView;
- Private SampleListAdapter mAdapter;
-
- @ Override
- Protected void onCreate (Bundle savedInstanceState ){
- Super. onCreate (savedInstanceState );
- SetContentView (R. layout. sample );
-
- // Set initial data
- MListItems = new ArrayList ();
- For (int I = 1; I <= 10; I ++ ){
- MListItems. add ("Item" + Integer. toString (I ));
- }
-
- // Set ListView
- MListView = (PullToRefreshListView) findViewById (R. id. list_view );
- MAdapter = new SampleListAdapter ();
- MListView. setAdapter (mAdapter );
-
- // Set PullToRefresh
- MListView. setMode (Mode. BOTH );
- MListView. setOnRefreshListener (new OnRefreshListener2 (){
-
- // Pull Down Pulling Down
- @ Override
- Public void onPullDownToRefresh (PullToRefreshBase RefreshView ){
- // Reset data in the drop-down list
- MListItems = new ArrayList ();
- For (int I = 1; I <= 10; I ++ ){
- MListItems. add ("Item" + Integer. toString (I ));
- }
- MAdapter. notifyDataSetChanged ();
-
- New finishrefresh(cmd.exe cute ();
- }
-
- // Pulling Up
- @ Override
- Public void onPullUpToRefresh (PullToRefreshBase RefreshView ){
- // Add options when pulling up
- Int count = mListItems. size ();
- MListItems. add ("Item" + Integer. toString (++ count ));
- MAdapter. notifyDataSetChanged ();
-
- New finishrefresh(cmd.exe cute ();
- }
-
- });
-
- }
-
- 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 {
- @ Override
- Protected Void doInBackground (Void... params ){
- Return null;
- }
-
- @ Override
- Protected void onPostExecute (Void result ){
- MListView. onRefreshComplete ();
- }
- }
- }