In diesem Artikel wird ein Beispiel für das Schreiben von Recyclerview mit Kotlin bzw. Java vorgestellt. Es wird mit Ihnen geteilt. Die Details sind wie folgt:
Java: Genau wie bei der allgemeinen Schreibmethode wurde die Schaltfläche Antwort hinzugefügt
Mainaktivität:
MainActivity der öffentlichen Klasse erweitert AppCompataktivität implementiert RecyclerAdapter. private recyclerview.layoutManager mlayoutManager; privater Recycleradapter Mrecycleradapter; private arrayList; @Override Protected void OnCreate (bündeltedes Instanzestat) {Super.oncreate (SavedInstancestate); setContentView (r.layout.Activity_main); Recycleritem -Artikel; list = new ArrayList <> (); item = new recyclerItem (); item.setName ("Nr."+0); list.add (item); mrecyclerview = findViewById (R.Id.Recyclerview); MRECYCLERADAPTER = New Recycleradapter (this, list); Mrecycleradapter.SetonItemClickListener (dies); // vertikaler Gitterstil, ein Element pro Zeile mlayoutManager = neuer GridLayoutManager (this 3, orientationHelper.vertical, false); // Layout -Manager MRECYCLERVIEW.SetLayoutManager (mlayoutManager) festlegen; // Adapter mrecyclerview.setAdapter (Mrecycleradapter) festlegen; // Setzen Sie die Animation für die Hinzufügung und Entfernung von MRECYCLERVIEW.SETITEMANImator (newDefaultItemanimator ()); } // Die Schaltfläche des Adapters klicken Sie auf Event @Override public void onitemContentClick (ViewView, intposition) {// Klicken Sie auf die letzte Schaltfläche, um ein Element hinzuzufügen, wenn (Position == list.size ()-1) {Recycleritemitem = newRecycleritem (); item.setName ("Nr."+(Position+1)); list.add (0, item); // recyclerview mrecycleradapter.updatedata (Liste) aktualisieren; } else {toast.makeText (this, "Nr."+Position, toast.length_short) .show (); }}}Adapter:
öffentliche Klasse RecyclerAdapter erweitert recyclerview.adapter {private arrayList mdata; privater Kontext mcontext; private OnitemclickListener OnitemclickListener; public void setonItemclickListener (OnitemclickListener -Listener) {this.onitemclickListener = Listener; } public recyclerAdapter (Kontext mcontext, ArrayList mdata) {this.mdata = mdata; this.mcontext = mcontext; } // Die gesamte Liste public void updatedata (ArrayList -Daten) {this.mdata = data; notifyDataSetanged (); } // Lokale Liste öffentliche void updatedataitem (ArrayList -Daten, int itemnm) {this.mdata = Data; notifyItemchanged (itemnm); } @Override public View Holder OnCreateViewHolder (Ansichtsgruppe übergeordnet, int ViewType) {View v = layoutInflater.from (parent.getContext ()). Inbate (R.Layout.Recycler_item, Eltern, False); Vieweholder Vieweholder = New Vieweholder (v); Rückkehrer; } @Override public void onbindViewHolder (endgültiger Ansichtshalter, int Position) {Holder.BTN.SetText (mdata.get (Position) .getName ()); Holder. } @Override public int getItemCount () {return mdata == null? 0: mdata.size (); } public statische Klassenansicht erweitert recyclerview.viewHolder {button btn; öffentliche Ansichtshalter (ItemView anzeigen) {Super (itemView); btn = itemView.findViewById (R.Id.Recycle_name); }} public interface onitemclickListener {void onitemContentClick (Ansicht, int Position); }}Recycleritem:
öffentliche Klasse Recycleritem {String Name; public String getName () {return name; } public void setName (String -Name) {this.name = name; }Aktivität_Main:
<android.support.v7.widget.recyclerview xmlns: app = "http://schemas.android.com/apk/res-auto" xmlns: tools = "http://schemas.android.com/tools" android: loyout_width = "mikparent" android:layout_height="match_parent" tools:context="com.tudou.recycleviewdemo.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" Android: Hintergrund = "#00000000" Android: paddingbottom = "5dip"> </android.support.v7.widget.Recyclerview> </android.support.constraint.ConstraintLayout>
recycler_item:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp"> <Button android:id="@+id/recycle_name" android:layout_width="wrap_content" Android: layout_Height = "Wrap_Content" Android: Layout_CenterinParent = "True" Android: text = "Nr. 1"/> </relATivalout>
KOTLIN: Die Syntax ist geringfügig unterschiedlich, der Recyclerview -Aufruf ist ähnlich
Mainaktivität:
Klasse MainActivity: AppCompataktivität (), MainAdapter.Itemclick {val items: mutablelist = arrayList () var mainadapter: mainadapter? Recycleritem item = recyclerItem () item.name = "no."+0 item.add (item) val recyclerview = findViewById (R.id.Recyclerview) As Recyclerview Recycleview.layoutManager = GridLayoutManager (this 3, orientationHeel. Mainadapter !!. + (Position + 1) Elemente.Add (0, Element) // Daten Mainadapter aktualisieren. Aktualisiertata (Elemente)} else {Toast.Maketext (this, items.get (Position) .Name, toast.length_short) .show ()}}}}}}Mainadapter:
Klasse Mainadapter: recyclerview.adapter {var items: list? = null var context: context? = null var itemclick: itemClick? } override Fun onbindViewHolder (Halter: ViewHolder?, Position: int) {var name = items !!. itemclick !!. onitemclick (Holder.ItemView, Position)}})}}} Überschreien Sie Spaß getItemCount (): int {Rückgabeartikel !!. Layoutinflater.from (übergeordnet !! itemView !!. findViewById (r.id.recycle_name) als TextView} Schnittstelle itemClick {Fun Onitemclick (v: Ansicht, Position: int); }}Recycleritem:
Klasse Recycleritem {var name: string = "" Set}Aktivität_Main:
<Android.support.Constraint.ConstraintLayout xmlns: app = "http://schemas.android.com/apk/res-auto" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = " android:layout_height="match_parent" tools:context="com.tudo.kotlintdemo.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recyclerView" android:layout_width="match_parent" android:layout_height="match_parent" Android: Hintergrund = "#00000000" Android: paddingbottom = "5dip"> </android.support.v7.widget.Recyclerview> </android.support.constraint.ConstraintLayout>
recycler_item:
<RelativeLayout> xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="100dp" android:layout_height="100dp"> <Button android:id="@+id/recycle_name" android:layout_width="wrap_content" Android: layout_Height = "Wrap_Content" Android: Layout_CenterinParent = "True" Android: text = "Nr. 1"/> </relATivalout>
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.