Pages

Thursday, December 1, 2016

Membuat Swipe Refresh untuk meLoading Data pada Android Eclipse

Selamat malam, sudah lama tidak posting, karena sibuk ni dengan kegiatan sehari-hari. Pada postingan kali ini, saya akan membagikan sebuah tutorial yang mungkin belum anda ketahui bagaimana cara membuatnya, yaitu ,membuat swipe refresh yang list nya ditarik kebawah akan merefresh ulang kontent didalam listview android. 

 

Untuk lebih jelasnya ayo kita ikuti tutorial berikut ini.
Sebelum mengikuti lebih lanjut tutorial ini, sebaiknya pastikan pada folder libs sudah ada android-support-v4.jar, biasanya sudah ada jika kita buat project baru.

 

activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/swipe_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
 
    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >
    </ListView>
 
</android.support.v4.widget.SwipeRefreshLayout>

list_item.xml
1
2
3
4
5
6
7
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="7dp"
    android:textSize="14dp"
    android:textColor="@android:color/white" />

MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
package com.example.swiftrefresh;
 
import java.util.Arrays;
import java.util.List;
 
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
public class MainActivity extends Activity implements OnRefreshListener {
 
 private SwipeRefreshLayout swipeView;
 
 private ListView listView;
 private ArrayAdapter<String> adapter;
 
 private String[] LIST_COUNTRY = { "Indonesia", "Malaysia", "India",
   "Filiphina", "Thailand", "Inggris", "Jerman", "Kanada",
   "Argentina", "Saudi Arabia", "Afganistan", "Japan",
   "Korea Selatan", "China", "Australia", "Netherland" };
 
 private String[] LIST_COUNTRY_MORE = { "Indonesia", "Malaysia", "India",
   "Filiphina", "Thailand", "Inggris", "Jerman", "Kanada",
   "Argentina", "Saudi Arabia", "Afganistan", "Japan",
   "Korea Selatan", "China", "Australia", "Netherland", "Laos",
   "Brunei Darussalam", "Vietnam", "Mesir", "Turki" };
 
 private List<String> cityList;
 
 // variable to toggle city values on refresh
 boolean refreshToggle = true;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
 
  swipeView = (SwipeRefreshLayout) findViewById(R.id.swipe_view);
  swipeView.setOnRefreshListener(this);
  swipeView.setColorSchemeColors(Color.GRAY, Color.GREEN, Color.BLUE,
    Color.RED, Color.CYAN);
  swipeView.setDistanceToTriggerSync(50);// in dips
  swipeView.setSize(SwipeRefreshLayout.DEFAULT);// LARGE also can be used
 
  cityList = Arrays.asList(LIST_COUNTRY);
  listView = (ListView) findViewById(R.id.listView);
  adapter = new ArrayAdapter<String>(getApplicationContext(),
    R.layout.list_item, cityList);
  listView.setAdapter(adapter);
  listView.requestLayout();
 }
 
 Handler handler = new Handler() {
  public void handleMessage(android.os.Message msg) {
 
   if (refreshToggle) {
    refreshToggle = false;
    cityList = Arrays.asList(LIST_COUNTRY_MORE);
    adapter = new ArrayAdapter<String>(getApplicationContext(),
      R.layout.list_item, cityList);
   } else {
    refreshToggle = true;
    cityList = Arrays.asList(LIST_COUNTRY);
    adapter = new ArrayAdapter<String>(getApplicationContext(),
      R.layout.list_item, cityList);
   }
   listView.setAdapter(adapter);
 
   swipeView.postDelayed(new Runnable() {
 
    @Override
    public void run() {
     Toast.makeText(getApplicationContext(),
       "city list refreshed", Toast.LENGTH_SHORT).show();
     swipeView.setRefreshing(false);
    }
   }, 1000);
  };
 };
 
 @Override
 public void onRefresh() {
 
  swipeView.postDelayed(new Runnable() {
 
   @Override
   public void run() {
    swipeView.setRefreshing(true);
    handler.sendEmptyMessage(0);
   }
  }, 1000);
 }
 
}

 

No comments:

Post a Comment