Thursday, April 14, 2016

SwipeRefreshLayout Android

import
compile 'com.android.support:design:23.2.1' to gradle file
 
layout 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
 xmlns:app="http://schemas.android.com/apk/res-auto" 
 xmlns:tools="http://schemas.android.com/tools" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent" 
 android:fitsSystemWindows="true" 
 tools:context="football.conghuy.com.myapplication.MainActivity">

    <android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/srl" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content">

        <ListView 
        android:id="@+id/lv" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent"></ListView>

    </android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
 
MainActivity 
 

public class MainActivity extends AppCompatActivity {
    ListView listView;
    SwipeRefreshLayout mSwipeRefreshLayout;
    ArrayAdapter<String> adapter;
    String[] dataArr = {"a", "b", "c", "d", "e", "f"};

    @Override 
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = (ListView) findViewById(R.id.lv);
        mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.srl);
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataArr);
        listView.setAdapter(adapter);
        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override            public void onRefresh() {
                // update data here 
               new refresh_data().execute();
            }
        });
    }

    class refresh_data extends AsyncTask<Void, Void, Void> {

        @Override 
 protected void onPreExecute() {
            super.onPreExecute();
        }

        @Override 
 protected Void doInBackground(Void... params) {
            for (int i = 0; i < 4; i++) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }

        @Override 
 protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            if (mSwipeRefreshLayout.isRefreshing()) {
                mSwipeRefreshLayout.setRefreshing(false);
            }
        }
    }
}

No comments:

Post a Comment