Artikel ini memperkenalkan contoh penulisan Recyclerview menggunakan Kotlin dan Java masing -masing. Itu dibagikan dengan Anda. Dengan rincian sebagai berikut:
Java: Sama seperti metode penulisan umum, respons tombol telah ditambahkan
MainActivity:
MainActivity kelas publik memperluas appCompatactivity mengimplementasikan RecyClerAdapter.onitemClickListener {private Recyclerview Mrecyclerview; Private Recyclerview.LayoutManager MlayoutManager; Recyclerapter pribadi MrecyclerAdapter; Daftar Daftar Pribadi; @Override Protected void onCreate (Bundlesaved InstanceState) {super.onCreate (saveDinstanceState); setContentView (r.layout.activity_main); Item daur ulang; Daftar = ArrayList baru <> (); item = RecyCleritem baru (); item.setname ("no."+0); list.add (item); mrecyclerview = findViewById (r.id.recyclerview); MrecyclerAdapter = RecyclerAdapter baru (ini, daftar); MrecyclerAdapter.setonitemClickListener (ini); // Gaya kisi vertikal, satu item per baris mlayoutManager = GridLayoutManager baru (this, 3, orientationHelper.vertikal, false); // Set Layout Manager MrecyClerView.SetLayOutManager (MLayOutManager); // atur adaptor mrecyclerview.setAdapter (mrecycleradaDapter); // atur animasi untuk penambahan item dan penghapusan mrecyclerver.setiteManimator (newDefaultitemanimator ()); } // tombol adaptor klik event @override public void onItemContentClick (viewView, intposition) {// klik tombol terakhir untuk menambahkan item if (position == list.size ()-1) {recycleritemitem = newRecyCleritem (); item.setname ("no."+(Posisi+1)); list.add (0, item); // Perbarui RecyClerView MrecyclerAdapter.updatedata (daftar); } else {toast.maketext (ini, "tidak."+Posisi, toast.length_short) .show (); }}}Adaptor:
RecyclerAdapter kelas publik memperluas Recyclerview.Adapter {private arraylist mdata; konteks pribadi Mcontext; OnitemClickListener Private OnitemClickListener; public void setonitemClickListener (OnItemClickListener Listener) {this.onitemClickListener = listener; } public RecyclerAdapter (Context Mcontext, ArrayList mdata) {this.mdata = mdata; this.mcontext = mcontext; } // Segarkan seluruh daftar public void updateData (data arraylist) {this.mdata = data; NotifyDataSetchanged (); } // Segarkan daftar lokal void public updateTaitem (data arraylist, int itemnm) {this.mdata = data; NotifyItemChanged (itemnm); } @Override Public View Holder OnCreateViewHolder (ViewGroup Parent, int viewType) {view v = LayoutInflater.from (parent.getContext ()). Pemegang ViewHolder = Pemegang Pandangan Baru (V); pemegang view return; } @Override public void onBindViewHolder (pemegang viewholder akhir, posisi 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.onitemCoNCKECK. } @Override public int getItemCount () {return mdata == null? 0: mdata.size (); } Public Static Class ViewHolder Extends Recyclerview.ViewHolder {Tombol BTN; Public ViewHolder (Lihat ItemView) {Super (ItemView); btn = itemview.findviewById (r.id.recycle_name); }} antarmuka publik OnItemClickListener {void onItemContentClick (View View, int Position); }}Recycleritem:
RecyCleritem kelas publik {string name; public string getName () {return name; } public void setName (name string) {this.name = name; }Activity_main:
<android.support.v7.widget.RecyclerView xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" Alat: Context = "com.tudou.recycleviewDemo.mainActivity"> <android.support.v7.widget.recyclerver android: id = "@+id/recyclerver" android: layout_width = "match_parent" android: tata letak_height = "parkir_parent =" dan parkir " android: paddingbottom = "5dip"> </android.support.v7.widget.recyclerver> </android.support.constraint.constraintlayout>
Recycler_item:
<Relativelayout xmlns: android = "http://schemas.android.com/apk/res/android" android: layout_width = "100dp" android: tata letak_height = "100dp"> <tombol Android = "@+id/recycle" android "Android"> <Button Android = "@+id/Recycle" Android "Android: Lapis:" android: layout_height = "wrap_content" android: layout_centerInparent = "true" android: text = "no.1"/> </relativelayout>
Kotlin: Sintaksnya sedikit berbeda, panggilan RecyclerView serupa
MainActivity:
Kelas MainActivity: AppCompatactivity (), MainAdapter.ItemClick {Val Items: Mutablelist = ArrayList () var MainAdapter: MainAdapter? = null override onCreate yang menyenangkan (savedInstanceState: bundle?) {super.oncreate (savedInstanceState) setContentView: r. r.clay. RecyclerItem item = RecyclerItem() item.name = "No."+0 items.add(item) val recyclerView = findViewById(R.id.recyclerView) as RecyclerView recyclerView.layoutManager = GridLayoutManager(this, 3, OrientationHelper.VERTICAL, false) mainAdapter=MainAdapter(items, this) MainAdapter !!. setItemClickListener (this) RecyclerView.Adapter = MainAdapter RecyclerView.Itemanimator = defaultItemanimator ()} // tombol adaptor klik event event override overemClick (v: view, position: int) {if (position == item. + (posisi + 1) item.add (0, item) // Perbarui data MainAdapter !!. updateData (item)} else {toast.maketext (this, items.get (position) .name, toast.length_short) .show ()}}}MainAdapter:
Class MainAdapter: RecyClerView.Adapter {Var Item: Daftar? = null var konteks: konteks? = null var itemClick: itemClick? = null constructor (item: list, context: context) {this.items = item this.context = context} fun setItemClickListener (item itemsclick) {this.itemClick = itemclick} fun updateDateData (item: list) {this.itemclick = fun noTeP NOTLATED (items) {list) {this. OnBindViewHolder (pemegang: viewHolder?, position: int) {var name = item !!. get (position) .name if (holder! = null) {holder.textname.setText (name) holder.textName.setonClickListener (view.onClickListerer {if (itemclick! Posisi)}})}}} override fun getItemCount (): int {return item !!. ukuran} override fun oncreateViewHolder (Parent: viewgroup?, viewtype: int): viewHolder {val v = layoutInflater.from (Parent !!. konteks) .inflate (r.layout.recyclate, falseMIVED, context) .inflate (r.layout.recyler ViewHolder (v) Return Holder} kelas ViewHolder (ItemView: View?): RecyclerView.ViewHolder (ItemView) {var TextName: TextView = ItemView !!. FindViewById (r.id.recycle_name) sebagai TextView} interface itemClick {fun onItemClick, v: }}Recycleritem:
kelas RecyClerItem {var name: string = "" dapatkan set}Activity_main:
<android.support.constraint.constraintlayout xmlns: app = "http://schemas.android.com/apk/res-auto" xmlns: tools = "http://schemas.android.android" android "android: tata letak_width =" papar_par_par_par_par_par_pare.android Alat: Context = "com.tudo.kotlintdemo.mainActivity"> <android.support.v7.widget.recyclerview android: id = "@+id/recyclerver" android: layout_width = "match_parent" android: layout_height = "match_parent" dan latar belakang "00 android: paddingbottom = "5dip"> </android.support.v7.widget.recyclerver> </android.support.constraint.constraintlayout>
Recycler_item:
<relativelayout> xmlns: android = "http://schemas.android.com/apk/res/android" android: layout_width = "100dp" android: tata letak_height = "100dp"> <tombol Android = "@+id/recycle_name" android "> <" lapisten = "@+id/recycle" android "android"> <"Laptent ="@+id/Recycle "android" Android "> android: layout_height = "wrap_content" android: layout_centerInparent = "true" android: text = "no.1"/> </relativelayout>
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.