В этой статье представлен пример написания переработки с использованием Kotlin и Java соответственно. Это совместно с вами. Детали следующие:
Java: Как и общий метод написания, был добавлен ответ кнопки
MainActivity:
Public Class MainActivity расширяет AppCompatactivity реализует recyclerAdapter.onitemclicklistener {private recyclerview mrecyclerview; private recyclerview.layoutmanager mlayoutmanager; Частный переработчик MRECYCLERADAPTER; Private ArrayList; @Override Protected void Oncreate (Bundlesaved Instancestate) {super.oncreate (saveNstancestate); setContentView (r.layout.activity_main); Recycleritem item; list = new ArrayList <> (); item = new Recycleritem (); item.setName ("нет."+0); list.add (item); MRECYCLERVIEW = findViewByID (R.Id.Recyclerview); mrecycleradapter = new RecyclerAdapter (это, список); mrecycleradapter.setonitemclicklistener (это); // Стиль вертикальной сетки, один предмет на строку mlayoutmanager = new Gridlayoutmanager (this, 3, OrientationHelper.vertical, false); // Установить менеджер макетов mrecyclerview.setlayoutmanager (mlayoutmanager); // установить адаптер mrecyclerview.setAdapter (mrecycleradapter); // Установить анимацию для добавления и удаления элемента MRECYCLERVIEW.SETITeManimator (newDefaultIteManimator ()); } // Кнопка адаптера Нажмите событие @Override public void onItemContentClick (viewView, intPosition) {// Нажмите последнюю кнопку, чтобы добавить элемент if (position == list.size ()-1) {recycleritemitem = newRecycleritem (); item.setName ("нет."+(положение+1)); list.add (0, item); // Обновление recyclerview mrecycleradapter.updatedata (list); } else {toast.maketext (this, "no."+position, toast.length_short) .show (); }}}Адаптер:
Public Class RecyclerAdapter Extends recyclerview.adapter {private Arraylist Mdata; частный контекст Mcontext; Private OnitemClickListener OnitemClickListener; public void setOnitemClickListener (onitemClickListener слушатель) {this.onitemClickListener = слушатель; } public recyclerAdapter (контекст McOntext, ArrayList mdata) {this.mdata = mdata; this.mcontext = mcontext; } // Обновить весь список public void updatedAta (данные ArrayList) {this.mdata = data; notifyDatASetchAnged (); } // Обновить локальный список public void updatedAtaitem (ArrayList Data, 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); вернуть владелец взгляда; } @Override public void onBindViewholder (Final Viewholder Holder, int position) {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, pos); } @Override public int getIteMcount () {return mdata == null? 0: mdata.size (); } public Static Class Viewholder расширяет recyclerview.viewholder {button btn; Public Viewholder (View itemView) {super (itemView); btn = itemview.findviewbyid (r.id.recycle_name); }} public interface onitemClickListener {void onItemContentClick (View View, Int Position); }}Recycleritem:
открытый класс recycleritem {string name; public String getName () {return name; } public void setName (string name) {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: Loolout_width = "matchle_parent" и loodroid. Инструменты: 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: "#################№0000"##########№0000 " 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 = "wroud_content" Android: layout_height = "wrap_content" Android: Layout_CenterinParent = "true" Android: Text = "№1"/> </RelatiVelayout>
Kotlin: синтаксис немного отличается, вызов Recyclerview аналогичен
MainActivity:
класс MainActivity: AppCompatActivity (), MainAdapter.ItemClick {val Items: mutablelist = arraylist () var mainAdapter: mainAdapter? = null overde fun oncreate (savedInstanceState: bundle? Recycleritem item = recycleritem () item.name = "no."+0 item.add (item) val recyclerview = findviewbyid (r.id.recyclerview) как recyclerview recyclerview.layoutmanager = gridlayoutmanager (This, 3, OrientationHelper.Vertical, false) mainAdapter = mainAdapter (это, это, this, 3, overytionhelper.vertpertical, false) mainAdapter = mainAdapter (это, это, это, 3, ориентация. MainAdapter !!. SetItemClickListener (this) recyclerview.adapter = mainAdapter recyclerview.itemanimator = defaultIteManimator ()} // Кнопка адаптера. Кнопку Нажмите событие Переопределение FUR ONITEMCLICK (v: view, position: int) {if (position = epem.size - 1) {valemClick = recyclerit () in. + (position + 1) items.add (0, item) // Обновление данных Mainapter !!. updatedata (items)} else {toast.maketext (this, items.get (position) .name, toast.length_short) .show ()}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}Meanadapter:
класс MainAdapter: recyclerview.adapter {var элементы: список? = null var context: context? = null var itemclick: itemclick? = null constructor (элементы: список, контекст: контекст) {this.items = items this.context = context} Fun SetItemClickListener (itemClick: itemClick) {this.itemClick = itemClic OnBindViewholder (Holder: Viewholder?, Position: int) {var name = элементы !!. get (позиция). })}}} переопределить веселье getIteMcount (): int {return ements !!. size} переопределить веселье на CReateViewHolder (родитель: viewgroup?, viewtype: int): viewholder {val v = layoutinflater.from (родитель !! holder} класс Viewholder (itemView: view?): recyclerview.viewholder (itemview) {var textName: textView = itemView !!. findViewById (r.id.recycle_name) как TextView} interface itemClick {fun onitemClick (v: view, position: int); }}Recycleritem:
класс recycleritem {var name: string = "" get set}Activity_main:
<android.support.constraint.constraintlayout xmlns: app = "http://schemas.android.com/apk/res-auto" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: mayout_hhehe_hehe_hehe_hehe_hehe_heols "android: layout_width =" match_parent "android:" mathout_hhe_hehe. Инструменты: 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: android = "#00prent" android: layout_height = "match_parent":#00prent "android" Android: paddingbottom = "5dip"> </android.support.v7.widget.recyclerview> </android.support.constraint.constraintlayout>
recycler_item:
<latativeLayout> 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 =" wroud_content "wroud_content" Android: layout_height = "wrap_content" Android: Layout_CenterinParent = "true" Android: Text = "№1"/> </RelatiVelayout>
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.