تقدم هذه المقالة مثالًا على كتابة RecyClerview باستخدام Kotlin و Java على التوالي. تتم مشاركتها معك. التفاصيل كما يلي:
جافا: تمامًا مثل طريقة الكتابة العامة ، تمت إضافة استجابة زر
النشاط الرئيسي:
يمتد النشاط الرئيسي للطبقة العامة AppCompatActivity الأدوات RecyClerAdapter.OnitemClickListener {Private Recyclerview Mrecyclerview ؛ recyclerview.layoutmanager mlayoutmanager ؛ recycleradapter الخاصة mrecycleradapter ؛ قائمة ArrayListlist الخاصة ؛ Override محمية void oncreate (bundlesaved stancestate) {super.oncreate (SaveInstancestate) ؛ setContentView (r.layout.activity_main) ؛ recycleritem البند ؛ قائمة = ArrayList جديد <> () ؛ العنصر = new recycleritem () ؛ item.setName ("no."+0) ؛ list.add (item) ؛ mrecyclerview = findViewById (r.id.recyclerview) ؛ MRECYCLERADAPTER = جديد RECYCLERADAPTER (هذا ، القائمة) ؛ mrecycleradapter.setOnitemClickListener (هذا) ؛ // نمط الشبكة الرأسية ، عنصر واحد لكل سطر mlayoutManager = new GridLayoutManager (هذا ، 3 ، eachtationHelper.Vertical ، false) ؛ // تعيين مدير التخطيط mrecyclerview.setlayoutmanager (mlayoutManager) ؛ // SET ADAPTER MRECYCLERVIEW.SETADAPTER (MRECYCLERADAPTER) ؛ // قم بتعيين الرسوم المتحركة لإضافة العناصر وإزالة mrecyclerview.setitemanimator (NewDefaultItemanImator ()) ؛ } // الزر المحول ، انقر فوق event ordride public void onItemContentClick (ViewView ، intposition) {// انقر فوق الزر الأخير لإضافة عنصر إذا (موضع == list.size ()-1) {recycleritemitem = newRecyClerItem () ؛ item.setName ("no."+(موضع+1)) ؛ list.add (0 ، item) ؛ // Update Recyclerview mrecycleradapter.updatedata (list) ؛ } آخر {toast.maketext (هذا ، "لا."+الموضع ، toast.length_short) .show () ؛ }}}محول:
recycleradapter من الطبقة العامة يمتد RecyClerview.Adapter {private ArrayList Mdata ؛ سياق خاص McOntext ؛ Private OnItemClickListener OnItemClickListener ؛ public void setOnitEmClickListener (onItemClickListener beasherer) {this.onitemClickListener = leader ؛ } RecyClerAdapter العامة (السياق McOntext ، ArrayList Mdata) {this.mdata = mdata ؛ this.mcontext = mcontext ؛ }. إخطار dataSteTchAnged () ؛ }. DetifyItemChanged (itemNM) ؛ } Override Public View Holder onCreateViewholder (ViewGroup Parent ، int viewType) {view v = layoutinflater.from (parent.getContext ()). inflate (R.Layout.RecyCler_Item ، Parent ، false) ؛ ViewHolderder Viewholder = New ViewHolder (V) ؛ عائد Viewholder ؛ } Override public void onBindViewholder (حامل ViewHolder النهائي ، وضع int) {holder.btn.settext (mdata.get (position) .getName ()) ؛ Holder.btn.setonClickListener (newview.onclickListener () {Override public void onClick (view v) {if (onItemClickListener! = null) {int pos = holder.getlayoutposition () ؛ onItemClickListener.OnitEmContentClick (holder.itemview ، } Override public int getItemCount () {return mdata == null؟ 0: mdata.size () ؛ } فئة ثابتة في ViewHolder تمتد Recyclerview.Viewholder {button btn ؛ Public ViewHolder (عرض itemView) {super (itemView) ؛ btn = itemView.findViewById (r.id.RecyCle_Name) ؛ }} الواجهة العامة OnItemClickListener {void onItemContentClick (عرض العرض ، int الموضع) ؛ }}recycleritem:
الفئة العامة recycleritem {string name ؛ السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ }Active_main:
<lodroid.support.v7.widget.recyclerview xmlns: app = "http://schemas.android.com/apk/res-auto" الأدوات: context = "com.tudou.RecyCleviewDemo.MainActivity"> <android.support.v7.widget.recyclerview android: id = "@id/recyclerview" Android: layout_width = "match_parent" android: layout_height = Android: PaddingBottom = "5DIP"> <Iandroid.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 = "No.1"/> </senativelayout>
Kotlin: بناء الجملة مختلف قليلاً ، مكالمة Recyclerview متشابهة
النشاط الرئيسي:
الفئة الرئيسية: appCompatActivity () ، mainadapter.itemclick {val items: mutablelist = arraylist () var mainadapter: mainadapter؟ = null override fun onCreate (savedInstancestate: bundle؟) {super.oncreat item = recycleritem () item.name = "no. MainAdapter !!. setItemClickListener (هذا) recyclerview.adapter = mainadapter recyclerview.itemanimator = defaultItemanImator ()} // زر المحول انقر فوق الحدث المرح onitemclick (v: view ، الموضع: int) {if == items. + (موضع + 1) items.add (0 ، عنصر) // تحديث البيانات mainadapter !!MainAdapter:
Class MainAdapter: recyclerview.adapter {var heads: list؟ = null var context: context؟ = null var itemclick: itemclick؟ = null constructor (العناصر: القائمة ، السياق: السياق) {this.items = under this.context = context} fun setIteMclistener (itemClick: itemClick) {this.itemclick = itemclick} exted expatedata (edine) } تجاوز المرح onBindViewHolder (Holder: ViewHolder؟ ، الموضع: int) {var name = items !! itemClick !!. onItemClick (holder.itemview ، الموضع)}})}}}} layoutinflater.from (الوالد !! itemView !! }}recycleritem:
class recycleritem {var name: string = "" get set}Active_main:
<android.support.constraint.constraintlayout xmlns: app = "http://schemas.android.com/apk/res-uto" xmlns: tools = "http://schemas.android.com/tools الأدوات: context = "com.tudo.kotlintDemo.MainActivity"> <android.support.v7.widget.recyclerview android: id = "@id/recyclerview Android: PaddingBottom = "5DIP"> <Iandroid.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 = " Android: layout_height = "wrap_content" Android: layout_centerinparent = "true" Android: text = "No.1"/> </senativelayout>
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.