Este artículo presenta un ejemplo de escritura RecyclerView usando Kotlin y Java respectivamente. Se comparte contigo. Los detalles son los siguientes:
Java: Al igual que el método de escritura general, se ha agregado la respuesta del botón
Mainactividad:
La clase pública MainActivity extiende AppCompatactivity implementos recyclerAdapter.onitemClickListener {private Recyclerview mRecyclerview; Private RecyclerView.LayoutManager MLayoutManager; Recycleradapter privado mRecyclerAdapter; ArrayListList privado; @Override protegido void onCreate (Bundlesaved Instancestate) {super.Oncreate (saveDInStancestate); setContentView (r.layout.activity_main); Artículo de reciclador; list = new ArrayList <> (); item = new Recycleritem (); item.setName ("no."+0); list.add (elemento); MRECYCLERVIEW = FindViewById (r.id.recyclerview); mRecyclerAdapter = new RecyclerAdapter (this, list); mRecyclerAdapter.setOnitemClickListener (esto); // estilo de cuadrícula vertical, un elemento por línea mlayoutManager = new GridLayoutManager (this, 3, orientationHelper.vertical, falso); // establecer el gerente de diseño mRecyclerview.setLayoutManager (mlayoutmanager); // establecer el adaptador mRecyclerview.setAdapter (mRecyclerAdapter); // Establezca la animación para la adición y eliminación de artículos mRecyclerview.setitEmator (newDefaultItEmator ()); } // Evento de clic del botón Adaptador @Override public void onItemContentClick (ViewView, intPosition) {// Haga clic en el último botón para agregar un elemento if (posicion == list.size ()-1) {recyClerItemItem = newRecycleritem (); item.setName ("no."+(posición+1)); list.add (0, elemento); // actualizar recyclerview mRecyclerAdapter.updatedata (lista); } else {toast.maketeext (this, "no."+posición, toast.length_short) .show (); }}}Adaptador:
Public Class RecyclerAdapter extiende recyclerview.Adapter {private arrayList mData; contexto privado Mcontext; privado onItemClickListener onItemClickListener; public void setOnitemClickListener (OnItemClickListener Listener) {this.oniTemClickListener = oyente; } public recyclerAdapter (context Mcontext, ArrayList mData) {this.mdata = mData; this.mContext = Mcontext; } // Actualizar la lista completa de public void Updateatedata (ArrayList Data) {this.mdata = data; notifyDataSetchanged (); } // Actualizar la lista local public void UpdateAdataTem (Data ArrayList, int itemnm) {this.mdata = data; notifyItemChanged (itemnm); } @Override Public View Holder OnCreateViewHolder (ViewGroup Parent, int ViewType) {View V = LayoutInflater.From (Parent.getContext ()). Inflate (R.Layout.recycler_item, Parent, False); ViewHolder ViewHolder = New ViewHolder (v); Viewholder de retorno; } @Override public void onbindViewholder (final de vista de vista final, int posición) {holder.btn.settext (mdata.get (posición) .getName ()); Holder.btn.setOnClickListener (newView.onClickListener () {@Override public void onClick (ver v) {if (onItemClickListener! = NULL) {int pos = holdeer.getLayoutPosition (); onItemClickListener.oniTemContentententClick (holder.itemView, pos);}}}}; } @Override public int getItemCount () {return mData == null? 0: mdata.size (); } public static class Viewholder extiende recyclerview.viewholder {botón btn; Public ViewHolder (Ver itemView) {super (itemView); btn = itemView.FindViewById (r.id.recycle_name); }} interfaz pública OnItemClickListener {void onItemContentClick (Ver View, int Position); }}Recicleritem:
clase pública recycleritem {nombre de cadena; public String getName () {nombre de retorno; } public void setName (nombre de cadena) {this.name = name; }Activity_Main:
<android.support.v7.widget.recyclerview xmlns: app = "http://schemas.android.com/apk/res-auto" xmlns: herramientas = "http://schemas.android.com/tools" android: licout_width = "match_parent" android "android" android "android" Herramientas: context = "com.tudou.recycleviewdemo.mainactivity"> <android.support.v7.widget.recyclerview android: id = "@+id/recyclerview" android: layout_width = "pareja_parent" android: layout_height = "match_parent" android: background = "#000000000000000000" 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"> <botón Android: id = "@+id/recycle_name" android: lentout_width = "wrap_content" Android: Layout_height = "wrap_content" Android: Layout_centerInParent = "True" android: text = "No.1"/> </relativeLayout>
Kotlin: la sintaxis es ligeramente diferente, la llamada RecyclerView es similar
Mainactividad:
clase MainActivity: appCompatActivity (), mainAdapter.ItemClick {vals items: mutableList = arrayList () var mainAdapter: mainAdapter? = NULL OverRide FURN OnCreate (SaveDInStancate: Bundle?) {Super.onCreate (saveDInStancate) setContentView (r.layout.activity_memain / / /iptem ipteme (savedStancEstate) setContentView (r.layout.activity_memain / / /iptem ipteme (savedStancEstate) setContentView (r.layout.activity_memain / /iptem ipteme: Recycleritem item = recycleritem () item.name = "no."+0 items.add (item) val recyclerview = findViewByid (r.id.recyclerview) como recyclerview recyclerview.layoutmanager = gridLayoutMangeManger (esto, 3, orientationhelper.veral, falso) mainadapter = mainApter (MainApter (MainApter (esto) MainAdapter !!. setItemClickListener (this) recyclerView.Adapter = mainAdapter recyclerview.itemanimator = defaultITemanImator ()} // El botón de adaptador Click Event Event Evide FUN ONITEMCLICK + (posición + 1) items.add (0, item) // ¡Actualizar datos MainAdapter!MainAdapter:
Class MainAdapter: RecyclerView.Apter {Var Elementos: Lista? = null var context: context? = null var itemClick: itemClick? = null constructor (elementos: list, context: context) {this.items = elementos this.context = context} diversión setitemClickListener (itemClick: itemClick) {this.itemClick = OnBindViewHolder (Holder: ViewHolder?, Position: int) {var name = items! posición)}})}}} anular la diversión getItemCount (): int {return items !!. Size} anular la diversión de la participación (parent. Ver Holder (v) Holder de retorno} class ViewHolder (itemView: Ver?): RecyclerView.ViewHolder (itemView) {var textName: textView = itemView !!. FindViewById (r.id.recycle_name) como textView} interface itemClick {FunitEmClick (v: View, posición: int);; }}Recicleritem:
class Recycleritem {var name: string = "" Get set}Activity_Main:
<android.support.constraint.constraintlayout xmlns: app = "http://schemas.android.com/apk/res-auto" xmlns: herramientas = "http://schemas.android.com/tools" Android: layout_width = "match_parent" android: layout_height = "" Herramientas: 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: Background = "#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"> <Botton Android: id = "@+id/recycle_name" android: locout_width = "wrep_content" Android: Layout_height = "wrap_content" Android: Layout_centerInParent = "True" android: text = "No.1"/> </relativeLayout>
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.