Ich habe einige Male mit Android eine Liste von Elementen erstellt RecyclerView
, aber es ist ein ziemlich komplizierter Prozess. Ich gehe eines der zahlreichen Online-Tutorials durch ( dies , das und das sind gut), aber ich suche ein Beispiel, das ich kopieren und einfügen kann, um schnell einsatzbereit zu sein. Es sind nur die folgenden Funktionen erforderlich:
- Vertikales Layout
- Eine einzelne Textansicht in jeder Zeile
- Reagiert auf Klickereignisse
Da ich mir dies mehrmals gewünscht habe, habe ich mich schließlich entschlossen, die folgende Antwort für meine zukünftige Referenz und Ihre zu geben.
android
android-recyclerview
Suragch
quelle
quelle
Antworten:
Das Folgende ist ein minimales Beispiel, das wie das folgende Bild aussieht.
Beginnen Sie mit einer leeren Aktivität. Sie führen die folgenden Aufgaben aus, um die RecyclerView hinzuzufügen. Sie müssen lediglich den Code in jeden Abschnitt kopieren und einfügen. Später können Sie es an Ihre Bedürfnisse anpassen.
Aktualisieren Sie Gradle-Abhängigkeiten
Stellen Sie sicher, dass die folgenden Abhängigkeiten in Ihrer App-
gradle.build
Datei enthalten sind:Sie können die Versionsnummern auf die aktuellsten aktualisieren . Verwenden Sie diese Option,
compile
anstattimplementation
Android Studio 2.x noch zu verwenden.Aktivitätslayout erstellen
Fügen Sie das
RecyclerView
Ihrem XML-Layout hinzu.activity_main.xml
Zeilenlayout erstellen
Jede Zeile in unserer
RecyclerView
wird nur eine einzige habenTextView
. Erstellen Sie eine neue Layoutressourcendatei.recyclerview_row.xml
Erstellen Sie den Adapter
Sie
RecyclerView
benötigen einen Adapter, um die Ansichten in jeder Zeile mit Ihren Daten zu füllen. Erstellen Sie eine neue Java-Datei.MyRecyclerViewAdapter.java
Anmerkungen
ListViews
und ist ein allgemeines Bedürfnis. Sie können diesen Code entfernen, wenn Sie ihn nicht benötigen.Initialisieren Sie RecyclerView in Aktivität
Fügen Sie Ihrer Hauptaktivität den folgenden Code hinzu.
MainActivity.java
Anmerkungen
ItemClickListener
, was wir in unserem Adapter definiert haben. Dies ermöglicht es uns, Zeilenklickereignisse in zu verarbeitenonItemClick
.Fertig
Das ist es. Sie sollten jetzt in der Lage sein, Ihr Projekt auszuführen und etwas Ähnliches wie das Bild oben zu erhalten.
Weiter geht's
Hinzufügen eines Teilers zwischen Zeilen
Sie können einen einfachen Teiler wie diesen hinzufügen
Wenn Sie etwas Komplexeres wünschen, lesen Sie die folgenden Antworten:
Ändern der Zeilenfarbe beim Klicken
In dieser Antwort erfahren Sie, wie Sie die Hintergrundfarbe ändern und den Ripple-Effekt hinzufügen, wenn Sie auf eine Zeile klicken.
Zeilen aktualisieren
In dieser Antwort erfahren Sie, wie Sie Zeilen hinzufügen, entfernen und aktualisieren.
Weiterführende Literatur
quelle
Minimale Recycler-Ansicht, die zur Verwendung der Kotlin-Vorlage bereit ist für:
Ich weiß, dass dies ein alter Thread ist, ebenso wie die Antworten hier. Hinzufügen dieser Antwort zum späteren Nachschlagen:
Fügen Sie Ihrem Layout eine Recycling-Ansicht hinzu
Erstellen Sie ein Layout zum Anzeigen von Listenelementen (list_item.xml).
Erstellen Sie jetzt einen minimalen Adapter für Daten. Der Code hier ist selbsterklärend
Fügen Sie diese Klasse hinzu, um Einzelklick- und Langklickereignisse für Listenelemente zu verarbeiten
Stellen Sie Ihren Adapter zuletzt auf Recycler View ein und fügen Sie Touch Listener hinzu, um das Touch-Ereignis abzufangen, indem Sie einfach oder doppelt auf Listenelemente tippen
Bonus; Daten aktualisieren
Ergebnis:
quelle
Dies ist die einfachste Version der Implementierung von RecyclerView.
activity_main.xml
list_item_view.xml
CustomAdapter.java
MainActivity.java
quelle
Beginnen Sie mit dem Hinzufügen der recyclerview-Bibliothek.
Modellklasse erstellen.
Adapterklasse erstellen.
Erstellen Sie das Layout row_uses.xml
Suchen Sie nach Recycling-Ansicht und füllen Sie Daten aus.
Das vollständige Tutorial und den Quellcode finden Sie hier:
Android RecyclerView
quelle
usersAdapter = new UsersAdapter(userModelList,this);
?Basierend auf verschiedenen Quellen habe ich eine einfache Implementierung von RecyclerView mithilfe einer einfachen Bibliothek erstellt.
Fügen Sie diese Zeile hinzu
build.gradle
AddCreate a RecyclerView durch Hinzufügen von MyRecyclerView in activity_main.xml mit
Erstellen Sie jetzt in der MainActivity einen ViewHolder, indem Sie den Namen der Klasse übergeben, die gebunden werden muss
Erstellen Sie Elemente, Listenvariablen und Adapter mit sehr wenigen Zeilen, indem Sie Elemente, Klasse und Layout im Adapter übergeben
ClickListener kann mit folgenden Zeilen hinzugefügt werden
Es ist alles fertig.
Weitere Beispiele und Implementierungen finden Sie hier . Hoffe das hilft !!!
quelle
Jetzt brauchen Sie 1 Adapter für alle
RecyclerView
onBindViewHolder
, keineonCreateViewHolder
Handhabung.Ich zeige hier die Einstellung von zwei verschiedenen
RecyclerView
durch 1 Adapter -activity_home.xml
Sie können sehen, dass ich die Liste und die Elementlayout-ID übergebe und im Layout auf Listener klicke.
Diese benutzerdefinierten Attribute werden von BindingAdapter erstellt .
Jetzt von Aktivität, Sie übergeben Liste, klicken Sie auf Listener wie
HomeActivity.java
Sie möchten nicht zu viel lesen, sondern das vollständige Beispiel direkt von meinem Github-Repo klonen / herunterladen . Und probieren Sie es selbst.
Sie können
GeneralAdapter.java
im obigen Repo sehen.Wenn Sie Probleme beim Einrichten der Datenbindung haben, lesen Sie bitte diese Antwort .
quelle
Da ich noch keinen Kommentar abgeben kann, werde ich den Link als Antwort posten. Ich habe ein einfaches, gut organisiertes Tutorial auf recyclerview gefunden. Http://www.androiddeft.com/2017/10/01/recyclerview-android/
Abgesehen davon, wenn Sie Ihrer Aktivität eine Recycler-Ansicht hinzufügen möchten, möchten Sie Folgendes tun und wie Sie dies tun sollten, wurde unter dem Link beschrieben
quelle
Sie können einen abstrakten Adapter mit verschiedenen Dienstprogrammen und Filtern verwenden
SimpleAbstractAdapter.kt
Und erweitern Sie den abstrakten Adapter um Implementierungsmethoden
TasksAdapter.kt
Init Adapter
und Fülle
Benutzerdefinierten Filter hinzufügen
Daten filtern
quelle
Abhängigkeiten
Eine Klasse für Click Item
RecyclerView zweiter Klasse
Adapterklasse für Recyclerartikel
Modulklasse
quelle
Implementierung androidx.recyclerview: recyclerview: .... Es wird empfohlen, auf die hier aufgeführten androidx-Bibliotheken zu aktualisieren:
https://developer.android.com/jetpack/androidx/releases/recyclerview
Das XML-Tag der Layoutdatei Widget muss dann aktualisiert werden auf: androidx.recyclerview.widget.RecyclerView
quelle
Hier ist eine viel neuere Kotlin-Lösung, die viel einfacher ist als viele der hier geschriebenen Antworten. Sie verwendet eine anonyme Klasse.
Ich habe mir erlaubt , android.R.layout.simple_list_item_1 zu verwenden, da es einfacher ist. Ich wollte es noch weiter vereinfachen und ItemHolder als innere Klasse einsetzen, konnte aber nicht genau herausfinden, wie ich es in einem Typ im Parameter der äußeren Klasse referenzieren soll.
quelle