Saya telah membuat daftar item beberapa kali menggunakan Android RecyclerView
, tetapi ini adalah proses yang agak rumit. Melewati salah satu dari banyak tutorial online yang berfungsi ( ini , ini , dan ini bagus), tetapi saya mencari contoh sederhana yang dapat saya salin dan tempel untuk bangkit dan berjalan dengan cepat. Hanya fitur berikut yang diperlukan:
- Tata letak vertikal
- Satu TextView di setiap baris
- Menanggapi klik acara
Karena saya telah berharap untuk ini beberapa kali, saya akhirnya memutuskan untuk membuat jawaban di bawah ini untuk referensi masa depan saya dan Anda.
android
android-recyclerview
Suragch
sumber
sumber
Jawaban:
Berikut ini adalah contoh minimal yang akan terlihat seperti gambar berikut.
Mulailah dengan aktivitas kosong. Anda akan melakukan tugas-tugas berikut untuk menambahkan RecyclerView. Yang perlu Anda lakukan adalah menyalin dan menempelkan kode di setiap bagian. Nanti Anda dapat menyesuaikannya sesuai dengan kebutuhan Anda.
Perbarui dependensi Gradle
Pastikan dependensi berikut ada di
gradle.build
file aplikasi Anda :Anda dapat memperbarui nomor versi ke apa pun yang terbaru . Gunakan
compile
daripadaimplementation
jika Anda masih menggunakan Android Studio 2.x.Buat tata letak aktivitas
Tambahkan
RecyclerView
ke tata letak xml Anda.activity_main.xml
Buat tata letak baris
Setiap baris di kita
RecyclerView
hanya akan memiliki satuTextView
. Buat file sumber daya tata letak baru.recyclerview_row.xml
Buat adaptor
The
RecyclerView
perlu adaptor untuk mengisi pandangan di setiap baris dengan data Anda. Buat file java baru.MyRecyclerViewAdapter.java
Catatan
ListViews
dan merupakan kebutuhan umum. Anda dapat menghapus kode ini jika Anda tidak membutuhkannya.Inisialisasi RecyclerView dalam Aktivitas
Tambahkan kode berikut ke aktivitas utama Anda.
MainActivity.java
Catatan
ItemClickListener
yang kami tetapkan dalam adaptor kami. Ini memungkinkan kami untuk menangani acara klik baris dionItemClick
.Jadi
Itu dia. Anda harus dapat menjalankan proyek Anda sekarang dan mendapatkan sesuatu yang mirip dengan gambar di atas.
Sedang terjadi
Menambahkan pembagi di antara baris
Anda dapat menambahkan pembagi sederhana seperti ini
Jika Anda menginginkan sesuatu yang sedikit lebih rumit, lihat jawaban berikut:
Mengubah warna baris saat klik
Lihat jawaban ini untuk cara mengubah warna latar belakang dan menambahkan Efek Riak ketika sebuah baris diklik.
Memperbarui baris
Lihat jawaban ini untuk cara menambah, menghapus, dan memperbarui baris.
Bacaan lebih lanjut
sumber
Tampilan Pendaur Ulang Minimal siap menggunakan templat Kotlin untuk:
Saya tahu ini adalah utas lama dan begitu pula jawabannya di sini. Menambahkan jawaban ini untuk referensi di masa mendatang:
Tambahkan tampilan daur ulang di tata letak Anda
Buat tata letak untuk menampilkan item daftar (list_item.xml)
Sekarang buat Adaptor minimal untuk menyimpan data, kode di sini cukup jelas
Tambahkan kelas ini untuk menangani acara Klik tunggal dan klik panjang pada Item Daftar
Terakhir, atur adaptor Anda ke Tampilan Pendaur Ulang dan tambahkan Pendengar Sentuh untuk mulai mencegat acara sentuh untuk ketukan tunggal atau ganda pada item daftar
Bonus; Perbaharui data
Hasil:
sumber
Ini akan menjadi versi paling sederhana dari implementasi RecyclerView.
activity_main.xml
list_item_view.xml
CustomAdapter.java
MainActivity.java
sumber
Mulailah dengan menambahkan perpustakaan recyclerview.
Buat kelas model.
buat kelas adaptor.
buat tata letak row_uses.xml
Temukan recyclerview dan isi data.
temukan tutorial lengkap dan kode sumber di sini:
Android RecyclerView
sumber
usersAdapter = new UsersAdapter(userModelList,this);
?Berdasarkan berbagai sumber saya telah membuat Implementasi Sederhana dari RecyclerView menggunakan Perpustakaan Sederhana.
Tambahkan baris ini
build.gradle
AddCreate a RecyclerView dengan menambahkan MyRecyclerView di activity_main.xml dengan
Sekarang di MainActivity, Buat ViewHolder dengan melewati nama Kelas yang perlu diikat
Buat Item daftar variabel dan adaptor dengan sangat sedikit garis dengan melewatkan item, kelas, dan tata letak di adaptor
ClickListener dapat ditambahkan dengan baris berikut
Semua sudah selesai.
Lebih banyak contoh dan implementasi dapat ditemukan di sini . Semoga ini membantu !!!
sumber
Sekarang Anda membutuhkan 1 adaptor untuk semua
RecyclerView
onBindViewHolder
, TidakonCreateViewHolder
penanganan.Saya tunjukkan di sini pengaturan dua berbeda
RecyclerView
dengan 1 adaptor -activity_home.xml
Anda dapat melihat saya lulus daftar, id tata letak item dan klik pendengar dari tata letak.
Atribut khusus ini dibuat oleh BindingAdapter .
Sekarang dari Activity, Anda lulus daftar, klik like listener
HomeActivity.java
Anda tidak ingin terlalu banyak membaca, langsung mengkloning / mengunduh contoh lengkap dari dari repo github saya. Dan coba sendiri.
Anda bisa lihat
GeneralAdapter.java
repo di atas.Jika Anda memiliki masalah saat menyiapkan pengikatan data, silakan lihat jawaban ini .
sumber
Karena saya belum bisa berkomentar saya akan memposting sebagai jawaban tautan .. Saya telah menemukan tutorial yang sederhana dan terorganisir dengan baik pada recyclerview http://www.androiddeft.com/2017/10/01/recyclerview-android/
Selain itu ketika Anda akan menambahkan tampilan pendaur ulang ke dalam aktivitas Anda apa yang ingin Anda lakukan adalah seperti di bawah ini dan bagaimana Anda seharusnya melakukan ini telah dijelaskan pada tautan
sumber
Anda dapat menggunakan adaptor abstrak dengan utilitas dan filter berbeda
SimpleAbstractAdapter.kt
Dan memperluas adaptor abstrak dengan metode implement
TasksAdapter.kt
Adaptor init
dan isi
tambahkan filter khusus
memfilter data
sumber
Ketergantungan
Satu Kelas Untuk Item Klik
RecyclerView Kelas Kedua
Kelas Adaptor Untuk Item Pendaur Ulang
Kelas Modul
sumber
implementasi androidx.recyclerview: recyclerview: .... Disarankan untuk memperbarui ke perpustakaan androidx yang ada di sini:
https://developer.android.com/jetpack/androidx/releases/recyclerview
File tata letak Widget XML tag kemudian harus diperbarui ke: androidx.recyclerview.widget.RecyclerView
sumber
Berikut ini adalah solusi Kotlin yang jauh lebih baru untuk ini yang jauh lebih sederhana daripada banyak jawaban yang ditulis di sini, ia menggunakan kelas anonim.
Saya mengambil kebebasan untuk menggunakan android.R.layout.simple_list_item_1 karena lebih sederhana. Saya ingin menyederhanakannya lebih jauh dan menempatkan ItemHolder sebagai kelas dalam tetapi tidak bisa menemukan cara untuk merujuknya dalam tipe di parameter kelas luar.
sumber