Hai sobat, pada artikel sebelumnya yang berjudul Mengirim JSON Object ke Activity lain Menggunakan Intent, telah ditunjukkan bagaimana cara untuk menngirim json objek ke lain activity memakai intent putExtra. Dan untuk artikel kali ini, akan ditunjukkan cara menciptakan refresh pull down, di mana nantinya akan muncul jikalau kita menscroll ke bawah dan data akan muncul atau diperbarui.
SwipeRefreshLayout ialah widget yang telah disupport di dalam library android seupport v4. Widget ini mungkin telah menjadi standar untuk menciptakan fungsi refresh pada Android. Dengan adanya widget ini, opengguna akan dimudahkan unutk merefresh sebuah data dalam aplikasi android dengan menggulir atau menscroll ke bawah tanpa harum menekan tombol refresh.
Penggunaannya dengan memasangnya menjadi parent pada layout android, sehingga nantinya akan merefresh child view yang ada di dalamnya. Unutk tutorial ini aku memakai aplikasi pada artikle sebelumnya yang berjudul Tutorial Android dengan Retrofit HTTP Library. Widget SwipeRefreshLayout akan aku pasang pada MainActivity untuk menyegarkan halaman utama aplikasi. Lebih jelasnya sanggup teman ikuti langkah-lnagkah berikut ini
Pertama teman buka project aplikasi sebelumnya, kemudian buka activity_main.xml dan tambahkan widget SwipeRefreshLayout menyerupai berikut ini
Setelah menambahkan widget pada layout, selanjutnya teman tambahkan instruksi perintah SwipeResfreshLayout di dalam method onCreate di MainActivity.java menyerupai berikut ini
Maka instruksi lengkap dalam MainActivity.java akan nampak menyerupai berikut ini
Dalam instruksi tersebut, widget SwipeRefreshLayot sanggup diberi lebih dari satu warna sesuai harapan kita semoga tampilnaya lebih menarik atau warnanya akan berubah-ubah saat refresh berjalan. Setelah itu di dalam instruksi tersebut, fungsi untuk menampilkan data dimasukkan di dalam event SwipeRefreshLayout setOnRefreshListener, sehingga jikalau widget di jalankan, fungsi menampilkan data akan dijalankan. Untuk tampilanya akan jadi menyerupai gembar di bawah ini
SIlahkan jikalau teman ingin melihat hasil projectnya di github saya
Follow @AjiSetya Watch Star
Sangat gampang sekali menambahkan widget SwipeRefreshLayout di dalma aplikasi android. Dan sekian artikle dari aku wacana menambahkan widget SwipeRefreshLayout di android, semoga bermanfaat dan membantu.
SwipeRefreshLayout ialah widget yang telah disupport di dalam library android seupport v4. Widget ini mungkin telah menjadi standar untuk menciptakan fungsi refresh pada Android. Dengan adanya widget ini, opengguna akan dimudahkan unutk merefresh sebuah data dalam aplikasi android dengan menggulir atau menscroll ke bawah tanpa harum menekan tombol refresh.
Penggunaannya dengan memasangnya menjadi parent pada layout android, sehingga nantinya akan merefresh child view yang ada di dalamnya. Unutk tutorial ini aku memakai aplikasi pada artikle sebelumnya yang berjudul Tutorial Android dengan Retrofit HTTP Library. Widget SwipeRefreshLayout akan aku pasang pada MainActivity untuk menyegarkan halaman utama aplikasi. Lebih jelasnya sanggup teman ikuti langkah-lnagkah berikut ini
Pertama teman buka project aplikasi sebelumnya, kemudian buka activity_main.xml dan tambahkan widget SwipeRefreshLayout menyerupai berikut ini
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.blogsetyaaji.retrofithttplibrary.MainActivity"> <android.support.v4.widget.SwipeRefreshLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/swipeRefresh"> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/movie_recycler"/> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout> Setelah menambahkan widget pada layout, selanjutnya teman tambahkan instruksi perintah SwipeResfreshLayout di dalam method onCreate di MainActivity.java menyerupai berikut ini
/*menambah warna pada SwipeRefreshLayout*/ tamat SwipeRefreshLayout dorefresh = (SwipeRefreshLayout)findViewById(R.id.swipeRefresh); dorefresh.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); /*event saat widget dijalankan*/ dorefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener(){ @Override public void onRefresh() { refreshItem(); } void refreshItem() { tampilData(); onItemLoad(); } void onItemLoad() { dorefresh.setRefreshing(false); } }); Maka instruksi lengkap dalam MainActivity.java akan nampak menyerupai berikut ini
package com.blogsetyaaji.retrofithttplibrary; import android.content.Context; import android.content.Intent; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.GestureDetector; import android.view.MotionEvent; import android.view.View; import android.widget.Toast; import com.blogsetyaaji.retrofithttplibrary.Adapter.MoviesAdapter; import com.blogsetyaaji.retrofithttplibrary.Model.Movie; import com.blogsetyaaji.retrofithttplibrary.Model.MovieResponse; import com.blogsetyaaji.retrofithttplibrary.Rest.ApiClient; import com.blogsetyaaji.retrofithttplibrary.Rest.ApiInterface; import java.util.List; import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; public class MainActivity extends AppCompatActivity { private static tamat String TAG = MainActivity.class.getSimpleName(); // TODO - insert your themoviedb.org API KEY here private tamat static String API_KEY = "e5013e88aad0bad4821bdac93d1d6a30"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (API_KEY.isEmpty()) { Toast.makeText(getApplicationContext(), "Please obtain your API KEY first from themoviedb.org", Toast.LENGTH_LONG).show(); return; } tampilData(); /*menambah warna pada SwipeRefreshLayout*/ tamat SwipeRefreshLayout dorefresh = (SwipeRefreshLayout)findViewById(R.id.swipeRefresh); dorefresh.setColorSchemeResources(android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); /*event saat widget dijalankan*/ dorefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener(){ @Override public void onRefresh() { refreshItem(); } void refreshItem() { tampilData(); onItemLoad(); } void onItemLoad() { dorefresh.setRefreshing(false); } }); } private void tampilData() { tamat RecyclerView recyclerView = (RecyclerView) findViewById(R.id.movie_recycler); recyclerView.setLayoutManager(new LinearLayoutManager(this)); ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class); Call<MovieResponse> call = apiService.getTopRatedMovies(API_KEY); call.enqueue(new Callback<MovieResponse>() { @Override public void onResponse(Call<MovieResponse>call, Response<MovieResponse> response) { tamat List<Movie> movies = response.body().getResults(); Log.d(TAG, "Number of movies received: " + movies.size()); Toast.makeText(MainActivity.this, "Number of movies received: " + movies.size(), Toast.LENGTH_LONG).show(); recyclerView.setAdapter(new MoviesAdapter(movies, R.layout.list_item_movie, getApplicationContext())); /*perintah klik recyclerview*/ recyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { GestureDetector gestureDetector = new GestureDetector(getApplicationContext(), new GestureDetector.SimpleOnGestureListener() { public boolean onSingleTapUp(MotionEvent e){ return true; } }); @Override public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) { View child = rv.findChildViewUnder(e.getX(), e.getY()); if (child != null && gestureDetector.onTouchEvent(e)){ int position = rv.getChildAdapterPosition(child); Toast.makeText(getApplicationContext(), "Id : " + movies.get(position).getId() + " selected", Toast.LENGTH_SHORT).show(); Intent i = new Intent(MainActivity.this, DetailActivity.class); i.putExtra("title", movies.get(position).getTitle()); i.putExtra("date", movies.get(position).getReleaseDate()); i.putExtra("vote", movies.get(position).getVoteAverage().toString()); i.putExtra("overview", movies.get(position).getOverview()); i.putExtra("bg", movies.get(position).getPosterPath()); MainActivity.this.startActivity(i); } return false; } @Override public void onTouchEvent(RecyclerView rv, MotionEvent e) { } @Override public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { } }); } @Override public void onFailure(Call<MovieResponse>call, Throwable t) { // Log error here since request failed Log.e(TAG, t.toString()); } }); } } Dalam instruksi tersebut, widget SwipeRefreshLayot sanggup diberi lebih dari satu warna sesuai harapan kita semoga tampilnaya lebih menarik atau warnanya akan berubah-ubah saat refresh berjalan. Setelah itu di dalam instruksi tersebut, fungsi untuk menampilkan data dimasukkan di dalam event SwipeRefreshLayout setOnRefreshListener, sehingga jikalau widget di jalankan, fungsi menampilkan data akan dijalankan. Untuk tampilanya akan jadi menyerupai gembar di bawah ini
SIlahkan jikalau teman ingin melihat hasil projectnya di github saya
Sangat gampang sekali menambahkan widget SwipeRefreshLayout di dalma aplikasi android. Dan sekian artikle dari aku wacana menambahkan widget SwipeRefreshLayout di android, semoga bermanfaat dan membantu.
Tag :
Pemrograman,
Pemrograman Android


0 Komentar untuk "Android Pull/Swipe To Refresh Recyclerview"