亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > Java > 正文

詳解分別用Kotlin和java寫RecyclerView的示例

2024-07-21 23:03:43
字體:
供稿:網(wǎng)友

本文介紹了分別用Kotlin和java寫RecyclerView的示例,分享給大家,具體如下:

java:跟一般的寫法一樣,增加了按鈕響應(yīng)

MainActivity:

public class MainActivity extends AppCompatActivity implements RecyclerAdapter.OnItemClickListener{    private RecyclerView mRecyclerView;    private RecyclerView.LayoutManager mLayoutManager;    private RecyclerAdapter mRecyclerAdapter;    private ArrayListlist;    @Override    protected void onCreate(Bundlesaved InstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        RecyclerItem item;        list = new ArrayList<>();        item = new RecyclerItem();        item.setName("No."+0);        list.add(item);        mRecyclerView = findViewById(R.id.recyclerView);        mRecyclerAdapter = new RecyclerAdapter(this,list);        mRecyclerAdapter.setOnItemClickListener(this);        // 豎直方向的網(wǎng)格樣式,每行一個(gè)Item        mLayoutManager=new GridLayoutManager(this,3,OrientationHelper.VERTICAL,false);        // 設(shè)置布局管理器        mRecyclerView.setLayoutManager(mLayoutManager);        // 設(shè)置adapter        mRecyclerView.setAdapter(mRecyclerAdapter);        // 設(shè)置Item添加和移除的動(dòng)畫        mRecyclerView.setItemAnimator(newDefaultItemAnimator());    }    //adapter的按鈕點(diǎn)擊事件    @Override    public void onItemContentClick(Viewview,intposition) {        //點(diǎn)擊最后一個(gè)按鈕增加一個(gè)item        if(position == list.size()-1) {          RecyclerItemitem=newRecyclerItem();          item.setName("No."+(position+1));          list.add(0,item);          //更新RecyclerView          mRecyclerAdapter.updateData(list);        }else{          Toast.makeText(this,"No."+position,Toast.LENGTH_SHORT).show();        }    }}

Adapter:

public class RecyclerAdapter extends RecyclerView.Adapter{  private ArrayList mData;  private Context mContext;  private OnItemClickListener onItemClickListener;  public void setOnItemClickListener(OnItemClickListener listener) {    this.onItemClickListener = listener;  }  public RecyclerAdapter(Context mContext,ArrayList mData){    this.mData = mData;    this.mContext = mContext;  }  //刷新整個(gè)list  public void updateData(ArrayList data) {    this.mData = data;    notifyDataSetChanged();  }  //刷新局部list  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);    return viewHolder;  }  @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 extends 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:

public class 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:layout_width="match_parent"  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: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">  <Button    android:id="@+id/recycle_name"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_centerInParent="true"    android:text="No.1"/></RelativeLayout>

Kotlin:語法略有不同,recyclerview調(diào)用類似

MainActivity:

class MainActivity : AppCompatActivity(), MainAdapter.ItemClick{  val items : MutableList = ArrayList()  var mainAdapter : MainAdapter ?= null  override fun onCreate(savedInstanceState:Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.activity_main)    //添加一個(gè)item    var item : 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()  }  //adapter的按鈕點(diǎn)擊事件  override fun OnItemClick(v : View, position : Int) {    if(position == items.size - 1) {      val item = RecyclerItem()      item.name = "No." + (position + 1)      items.add(0, item)      //更新數(shù)據(jù)      mainAdapter!!.updateData(items)    }else{      Toast.makeText(this,items.get(position).name, Toast.LENGTH_SHORT).show()    }  }}

MainAdapter:

class MainAdapter : RecyclerView.Adapter{  var items : List? = null  var context : Context ?= null  var itemClick : ItemClick ?= null  constructor(items : List, context : Context){    this.items = items    this.context = context  }  fun setItemClickListener(itemClick : ItemClick){    this.itemClick = itemClick  }  fun updateData(items : List){    this.items = items    notifyDataSetChanged()  }  override fun onBindViewHolder(holder : ViewHolder?, position : Int) {    var name=items!!.get(position).name    if(holder != null) {      holder.textName.setText(name)      holder.textName.setOnClickListener(View.OnClickListener{        if(itemClick != null) {          itemClick!!.OnItemClick(holder.itemView, position)        }      })    }  }  override fun getItemCount():Int{    return items!!.size  }  override fun onCreateViewHolder(parent : ViewGroup?, viewType : Int) : ViewHolder{    val v = LayoutInflater.from(parent!!.context).inflate(R.layout.recycler_item, parent, false) as RelativeLayout    val holder = ViewHolder(v)    return holder  }  class ViewHolder(itemView : View?) : RecyclerView.ViewHolder(itemView) {    var textName : TextView = itemView!!.findViewById(R.id.recycle_name) as TextView  }  interface ItemClick{    fun OnItemClick(v : View, position : Int);  }}

RecyclerItem:

class 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: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: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">  <Button    android:id="@+id/recycle_name"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_centerInParent="true"    android:text="No.1"/></RelativeLayout>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到kotlin教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产日产欧美视频| 91久久久国产精品| 欧美日韩一级黄| 亚洲波多野结衣| 国产黄视频在线| 日本一区二区三区视频在线观看| 极品尤物久久久av免费看| 国产精品美女久久久久| 被陌生人带去卫生间啪到腿软| 国产v综合v| 一本色道久久88| 中文字幕一区日韩电影| 亚洲无人区码一码二码三码| 久草资源在线观看| 97se亚洲国产综合自在线| 欧美一区二区黄片| 不卡在线视频| 国产精品综合激情| 佐佐木明希av| 蜜臀av午夜精品| 免费av片在线观看一道本| 久久久久久高清| 欧美亚洲一区在线| 东北一级毛片| 亚洲一区二区三区成人在线视频精品| 麻豆精品视频在线原创| 国产av无码专区亚洲a∨毛片| 一本一本久久a久久综合精品| 久久亚洲黄色| 欧美黑吊大战白妞| 精品少妇爆乳无码av无码专区| 久久婷婷国产麻豆91| 欧美国产丝袜视频| 亚洲制服欧美另类| 欧美日韩国产大片| 日本免费在线观看| 国内精品久久久久影院薰衣草| 中文字幕久久久久久久| 国精产品视频一二二区| 欧美午夜精品久久久久久浪潮| 免费在线看大片无需流量| 日本天堂在线观看| 亚洲人成无码www久久久| 精品国产欧美一区二区三区成人| 日韩欧美中文字幕不卡| 成人羞羞在线观看网站| 99精品网站| 成人在线视频你懂的| 欧洲激情一区二区| 手机免费看av片| 色综合久久99| 日日躁夜夜躁aaaabbbb| 国产欧美一区二区三区沐欲| 三区四区在线观看| 久久中文精品| 日韩一级裸体免费视频| 天天舔天天干| 欧美欧美天天天天操| 在线观看天堂| 300部国产真实乱| 男人的天堂99| 亚洲国产合集| 91成人在线观看喷潮教学| 视频一区二区三区免费观看| 潘金莲一级淫片aaaaaa播放| 992tv成人国产福利在线| 久久久久久久影视| 久久青青视频| 国模吧精品人体gogo| 国产精品乱码久久久久| 高清欧美精品xxxxx在线看| 国产精品片aa在线观看| 国产成人av网址| 好男人www社区在线视频夜恋| 一色桃子在线| 操欧美老女人| 黄色www在线观看| 亚洲精品成人精品456| 亚洲影院色在线观看免费| 国产成人av在线影院| 亚洲AV成人无码网站天堂久久| 久久久国产精品一区二区中文| 午夜精品久久久久久99热| 97精品一区二区视频在线观看| 久久久久人妻一区精品色| 国产又粗又猛又爽又黄| 91片黄在线观看喷潮| 亚洲综合第一| 青青草.com| 国偷自产av一区二区三区麻豆| 久久国产亚洲精品| 久久精品国产一区二区三区日韩| 亚洲国产精品免费| 电影天堂久久| 99精品久久免费看蜜臀剧情介绍| 欧美精选视频一区二区| 欧美精品xxxxx| 国产伦精品一区二区三区高清版禁| 中文字幕在线影视资源| 2019中文字幕在线视频| 国产成人精品在线观看| 日韩精品系列| 日本天堂中文字幕| 婷婷丁香综合| 亚洲熟妇无码乱子av电影| 国产欧美一区二区精品久导航| 99se视频在线观看| 日本一区二区三区视频免费看| 色婷婷免费视频| 中文字幕第50页| 天天槽夜夜槽| 伊人精品视频| 99re这里只有精品首页| 久久久亚洲国产天美传媒修理工| 偷拍自拍亚洲色图| 美女喷水白浆| 午夜福利视频一区二区| 亚洲波多野结衣| wwwxxx免费| 成人片黄网站色大片免费毛片| 欧美日韩不卡合集视频| 都市激情亚洲欧美| 欧美日本韩国在线| 亚洲精品无播放器在线播放| bl在线肉h视频大尺度| 69p69国产精品| 麻豆中文一区二区| 久久99精品久久久久久园产越南| 国产精品第一页在线| 欧美日韩性视频| 91美女片黄在线| 日韩电影大全免费观看2023年上| 精品深夜福利视频| 久久最新免费视频| 国产精品中文字幕在线观看| 亚洲一二三在线| 国产又爽又黄又嫩又猛又粗| 天堂在线资源8| 宅男视频免费在线观看视频| 天堂中文在线播放| 中文久久精品| 国产大片中文字幕| 先锋影音在av资源看片| 91福利资源站| 性欧美video另类hd尤物| 成人激情校园春色| 在线精品亚洲一区二区不卡| www.欧美日本| xxxx视频在线| 欧洲在线/亚洲| 91精品国产高清自在线| 中文字幕不卡三区视频| 久久综合五月婷婷| 激情国产一区二区| 五月婷婷丁香综合网| 黄色大片免费观看| 成人高清视频观看www| 日本xxxwww免费视频| 91网站免费看| 久久久久久欧美精品色一二三四| 欧美在线播放一区二区| 成年人在线观看视频免费| 国产精品无码av在线播放| 进去里视频在线观看| 亚洲国产精品ⅴa在线观看| 日韩精品在线播放视频| 天天操夜夜摸| 国产三级三级三级精品8ⅰ区| 欧美日韩成人精品| 性疯狂做受xxxx高清视频| 国产精品调教视频| 欧美激情第一区| 日韩欧国产精品一区综合无码| 欧美黄色免费网址| 少妇太紧太爽又黄又硬又爽小说| 婷婷激情五月综合| 欧美性猛交久久久乱大交小说| 一区二区三区电影网| 福利在线白白| а天堂8中文最新版在线官网| 色综合久久久久久中文网| 大片免费在线观看| 日日摸夜夜添夜夜添国产精品| 丁香综合五月| 日韩精品免费一线在线观看| 日韩精品一区二区三区老鸭窝| 国产精品自拍网| 粉嫩av一区二区三区天美传媒| 日韩精品中文字| 欧美日韩不卡一区二区| 老师我好爽再深一点的视频| 亚洲成人精品综合在线| 偷拍视频一区二区三区| 天堂网在线资源| 亚洲区精品久久一区二区三区| 一本一道久久a久久综合精品| 麻豆视频官网| 日韩成人免费视频| 久久97人妻无码一区二区三区| 久久―日本道色综合久久| 成人精品免费网站| 精品91福利视频| 激情国产一区二区| aaaaa一级片| 国产又粗又猛又色| 久久99亚洲热视| 影音先锋中文在线观看| 欧美一级爱爱视频| 视频一区亚洲| 四虎永久免费地址| 久久久久88色偷偷| 欧美视频在线观看免费网址| 精品日韩一区| 女人裸体性做爰全过| 免费看黄色一级大片| 国产成人手机视频| 日本中文在线播放| 国产一区二区在线视频你懂的| 黑人巨大猛交丰满少妇| 国产一区二区精品| 婷婷激情五月综合| 国产精品7777777| 国产精品视频自在线| 亚洲精品国产精品乱码不卡| 巨胸喷奶水www久久久| 国精产品一区一区三区mba桃花| 国产呦小j女精品视频| xxxx黄色片| 在线观看成人av电影| 亚洲一区二区三区精品在线观看| 亚洲自拍偷拍色图| 久久久亚洲欧洲日产国码aⅴ| 国产美女www爽爽爽视频| 国产一级片网站| 天天色天天综合| 国产91视觉| 久久精品国产在热久久| 国产一区二区三区高清| 公侵犯人妻一区二区三区| 妖精视频在线观看免费| av在线播放观看| 久久99热在线观看7| 亚洲aⅴ日韩av电影在线观看| 欧美最猛黑人xxxx| 蜜臀av国内免费精品久久久夜夜| 97超碰人人澡| 亚洲国产一成人久久精品| 欧美日韩国产综合一区二区三区| 亚洲一区二区三区四区精品| 亚洲欧洲一区二区在线观看| av网站导航在线观看免费| 国产91色蝌蚪视频| 91极品美女在线| 91国内精品野花午夜精品| 亚洲最大的av网站| 五月天丁香花婷婷| 中国一区二区视频| 美女av一区二区三区| 国产无套粉嫩白浆内谢| 香蕉国产精品偷在线观看不卡| 9999精品成人免费毛片在线看| 国产精品福利视频| 精品久久久久久一区二区里番| 韩国av免费观看| a天堂资源在线观看| 亚洲精品久久在线| 国产羞羞视频在线播放| 美女一区二区三区在线观看| 成人精品一区二区不卡视频| 欧美高清xxx| 国产成人无码精品久久久久| 亚洲图片小说在线| 亚洲人成欧美中文字幕| 国内成人免费视频| 欧美日韩偷拍视频| 波多野结衣在线播放| 推川ゆうり中文亚洲二区| 国产精品一在线观看| 日韩精品一区二区三区免费观影| 日韩av一区二区在线播放| 成人午夜电影在线播放| 天天操夜夜操视频| 欧美老头gaygay1069| 久久久成人的性感天堂| 国产aaa免费视频| 欧美gayvideo| 天天操天天操天天色天天要| 日韩欧美a级成人黄色| 美女视频黄频大全不卡视频在线播放| 中文av一区| 桃乃木香奈av在线| av大片免费看| 日韩视频中文字幕在线观看| 欧美在线观看黄| 亚洲精品少妇久久久久久| 久久99精品久久久久久久青青日本| 99久久久国产精品美女| 国产污视频在线看| 看欧美ab黄色大片视频免费| 亚洲精品久久久久久久久久久| 日本不卡一二三区黄网| 中文字幕亚洲欧美在线不卡| 久久久久亚洲av片无码| 国产91在线观看| 国产精品久久久久久久一区探花| 麻豆av一区| 国产一区二区三区精品在线观看| 在线观看免费黄视频| 国产免费a级片| 欧洲有码在线视频| 国产精品小说在线| 亚洲一区二区三区观看| 欧美国产中文| 三级在线免费观看| 精品久久久亚洲| 一本久中文高清| 国产aⅴ夜夜欢一区二区三区| 国产精品多人| 91福利在线观看视频| 国产在线你懂得| 久青草视频在线播放| 欧美性猛交xxxx免费看手交| 制服.丝袜.亚洲.另类.中文| 日韩特黄一级片| 日韩三级av高清片| 国产精品欧美亚洲777777| 超碰在线播放97| 国产午夜精品一区理论片飘花|