久久亚洲精品成人_国产精品欧美综合亚洲_亚洲va天堂va欧美ⅴa在线_91色视频在线观看_久久影院亚洲_一级黄色片播放_日韩av在线一区_精品一区二区在线看_老头吃奶性行交视频_日韩免费高清视频_天天操天天爽天天干_日本欧美在线视频

首頁 > 開發 > Java > 正文

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

2024-07-21 23:03:43
字體:
來源:轉載
供稿:網友

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

java:跟一般的寫法一樣,增加了按鈕響應

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);        // 豎直方向的網格樣式,每行一個Item        mLayoutManager=new GridLayoutManager(this,3,OrientationHelper.VERTICAL,false);        // 設置布局管理器        mRecyclerView.setLayoutManager(mLayoutManager);        // 設置adapter        mRecyclerView.setAdapter(mRecyclerAdapter);        // 設置Item添加和移除的動畫        mRecyclerView.setItemAnimator(newDefaultItemAnimator());    }    //adapter的按鈕點擊事件    @Override    public void onItemContentClick(Viewview,intposition) {        //點擊最后一個按鈕增加一個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;  }  //刷新整個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調用類似

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)    //添加一個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的按鈕點擊事件  override fun OnItemClick(v : View, position : Int) {    if(position == items.size - 1) {      val item = RecyclerItem()      item.name = "No." + (position + 1)      items.add(0, item)      //更新數據      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>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到kotlin教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
偷偷色噜狠狠狠狠的777米奇| 99精品欧美一区二区三区小说| 一级特黄性色生活片| 国产精品欧美亚洲777777 | 日本高清视频一区二区三区 | 亚洲黄色在线看| 一区二区三区精密机械公司| 少妇荡乳情欲办公室456视频| 国产1区2区在线观看| 国产野外作爱视频播放| 91在线免费看片| 97久久精品视频| 丝袜亚洲欧美日韩综合| 欧美zozo另类异族| 欧美日本在线播放| 亚洲激情一二三区| 久久嫩草精品久久久久| 国产一区二区在线观看免费| 国产美女三级无套内谢| 免费看毛片网站| 成年人av电影| 不卡的一区二区| 日韩久久久久久久久久久久| 日韩精品伦理第一区| 国产精品美女久久久久久免费 | 国产美女视频免费观看下载软件| 黄www在线观看| 亚洲爆乳无码精品aaa片蜜桃| 欧美日韩高清免费| 欧美激情精品久久久久久大尺度| 亚洲区中文字幕| 亚洲精品一区二区三区蜜桃下载| 欧美丰满嫩嫩电影| 亚洲av成人无码久久精品老人 | 亚洲成年人av| 韩国一区二区在线播放| chinese少妇国语对白| 欧美福利精品| 日韩亚洲视频在线| 亚洲一二三区精品| 久久久国产精华液999999| 国产在线一区二| 国产视频一区二区不卡| 欧美私模裸体表演在线观看| 天天操天天综合网| 精品欧美国产一区二区三区| 色综合久久天天| 欧洲一区在线观看| 日韩天堂在线观看| 欧美视频在线视频| 色欧美88888久久久久久影院| 欧美性猛交视频| 欧美精品丝袜中出| 亚洲国产精品久久91精品| 亚洲男人av电影| 一区二区三区日韩| 色综合天天综合网天天狠天天| 色哟哟国产精品| 日韩一区二区在线看片| 日韩高清av一区二区三区| 色婷婷综合视频在线观看| 色婷婷av一区二区三区大白胸| 欧美性猛交一区二区三区精品| 91精品国产美女浴室洗澡无遮挡| 精品一区电影国产| 欧美激情在线观看视频| 国产成人综合亚洲| 国产精品入口尤物| 久久久久久久久一区| 中文字幕欧美日韩一区二区| 男女日批视频在线观看| 波多野结衣天堂| 久久久久久久久久久久91| 最新版天堂资源在线| 伊人五月天婷婷| 久久免费手机视频| 中文字幕一区二区人妻痴汉电车| 亚洲第一页综合| 蜜桃91麻豆精品一二三区| 亚洲精品国产av| 国产成人高清视频| 亚洲精品视频在线观看免费| 日韩欧美资源站| 欧美精品情趣视频| 国产欧美日韩丝袜精品一区| 成人久久18免费网站漫画| 日韩欧美一区二区三区四区五区| 欧美性大战久久久久xxx| 日本一区二区免费视频| 国产一级在线观看视频| 久久久久久久尹人综合网亚洲| 国产在线观看免费一区| 亚洲麻豆国产自偷在线| 欧美videossexotv100| 欧美老女人xx| 久久人人九九| 亚洲国产综合av| 国产一二三av| 午夜精品久久久久久久99热黄桃| 懂色av一区二区三区蜜臀| 一区二区三区四区精品在线视频| 亚洲第一av在线| 欧美性在线观看| 黄色91av| 成人免费黄色av| 国产精品男女视频| 国产精品1024久久| 一区二区三区加勒比av| 亚洲精品一区久久久久久| 国产成人午夜视频网址| 加勒比成人在线| 欧美激情第四页| 亚洲 欧美 日韩 在线| 粉嫩一区二区三区性色av| 欧美精品一级二级| 国产精品久久久久久久久男| 成人免费观看视频在线观看| 久久婷婷一区二区| 日韩精品高清不卡| 欧美日韩亚洲国产一区| 欧美另类高清videos| 91人成网站www| 亚洲 欧美 综合 另类 中字| 超碰人人干人人| 日韩电影在线一区二区三区| 在线视频国产一区| 欧美专区国产专区| 日本三日本三级少妇三级66| 国产一区二区三区四区在线| 中文字幕xxxx| 国产精品美女久久久久高潮| 日韩一区在线视频| 男人添女人下部视频免费| 国产精品嫩草影院8vv8| 黄色一级视频免费观看| 国产福利精品导航| 欧美性xxxxhd| 国产有码一区二区| 一区二区三区不卡在线| 亚洲乱妇老熟女爽到高潮的片| 被灌满精子的波多野结衣| 手机在线免费看毛片| 国产一区二区福利| 欧美精品一区二区三区蜜臀| 91理论片午午论夜理片久久| 中国人与牲禽动交精品| 在线观看毛片av| 国产三级一区二区| 欧美美女bb生活片| 91成人免费在线观看| 国产成人精品综合久久久久99| 欧美成人一区二区视频| 无码人妻少妇色欲av一区二区| 成人精品在线看| 一级黄色高清视频| 国产免费一区二区三区最新不卡| 亚洲一区视频在线观看视频| 黄色片中文字幕| 日韩av电影网址| 久久久久久免费| 亚洲一区二区久久久| 99中文字幕在线观看| 国产亚洲欧美在线精品| 亚洲国产欧美日韩另类综合| 国产精品v日韩精品| 欧美日韩一区二区免费视频| 欧美精品激情在线| 四虎影院一区二区| 欧美一级片免费在线观看| 亚洲免费视频成人| 国产噜噜噜噜噜久久久久久久久 | 国产精品香蕉在线观看| 特级特黄刘亦菲aaa级| 麻豆国产精品官网| 视频直播国产精品| 国产伦一区二区三区色一情| 放荡的美妇在线播放| 又紧又大又爽精品一区二区| 国产精品一区二区三区成人| 男女黄床上色视频| 欧美激情一区二区三区蜜桃视频| 国产精品第100页| 亚洲最大成人综合网| 国产精品乱人伦| 国产精品专区一| 国产在线观看免费视频软件| 成人免费一区二区三区在线观看| 91久久久久久久久久| 日韩www视频| 久久精品欧美一区二区三区麻豆| 国产精品久久中文| 黄色小视频在线免费看| 中文字幕在线播放不卡一区| 成人免费淫片aa视频免费| 欧美丰满熟妇bbbbbb| 一区二区三区在线看| 欧美日韩另类丝袜其他| av网站免费播放| 国产亚洲精品久久久久久| 亚洲熟妇无码乱子av电影| 成人免费视频网站在线观看| 欧美最猛性xxxx| 亚洲不卡的av| 亚洲午夜久久久久久久久电影院 | 亚洲人成电影在线观看天堂色| 国产激情在线观看视频| 麻豆明星ai换脸视频| av电影在线不卡| 国产乱子伦视频一区二区三区| 日韩中文字幕久久| 青青草原av在线播放| 国产一区二区成人久久免费影院| 国产成人一区二区三区小说 | 国产精品黄色网| 欧美日韩一卡二卡三卡| 久久国产精品视频在线观看| 亚洲国产精品久久久久爰性色 | 国产成人精品无码免费看夜聊软件| 一区在线观看免费| 日韩伦理一区二区三区av在线| 国产乱色精品成人免费视频| 中文字幕欧美视频在线| 91精品国产自产| 色婷婷av一区二区三区软件| 无码aⅴ精品一区二区三区浪潮 | 一二三不卡视频| 亚洲电影第三页| 欧美黑人在线观看| 91在线小视频| 欧美亚洲另类久久综合| 日日嗨av一区二区三区四区| 国产精品久久久久高潮| 亚洲美女性视频| 国产二区视频在线播放| 久久综合影音| 日本免费黄视频| 亚洲 激情 在线| 欧美激情第3页| 最近国语视频在线观看免费播放| 国产精品久久久久久久第一福利| 国产主播欧美精品| 好吊色在线视频| 精品久久久精品| 日本在线观看a| 日本一区二区三区国色天香| 91精品国产综合久久香蕉922| 日本国产一级片| 日本女人一区二区三区| 欧美日韩国产综合新一区| 亚洲精品国产美女| 午夜精品免费在线观看| 欧美怡红院视频一区二区三区| 天天干天天干天天干天天干天天干| wwwav网站| 欧美女孩性生活视频| 亚洲精品日产aⅴ| 国内偷拍精品视频| 亚洲色无码播放| 日本成人在线免费观看| 国产亚洲人成a一在线v站| 日本不卡一区二区三区高清视频| 91在线视频一区| 国产三级视频在线播放| 午夜精品久久久久久99热| 国产大片免费看| 精品粉嫩aⅴ一区二区三区四区| 日本xxxxxxx免费视频| 26uuu国产在线精品一区二区| 国产乱人伦精品一区二区| 丰满人妻一区二区三区无码av| 亚洲精品福利在线观看| 熟女俱乐部一区二区视频在线| 亚洲一区二区五区| 成人在线免费观看av| 国产欧美在线观看一区| 国产精品av一区| 国产一区二区三区在线观看精品| 国产一区二区三区高清视频| 国产精品国产三级国产普通话99| 国产中文日韩欧美| 蜜桃视频污在线观看| 日韩欧美资源站| dy888午夜| 97国产精品videossex| 国产91对白刺激露脸在线观看| 亚洲综合色成人| 26uuu成人网一区二区三区| 91视频免费在线观看| 中文字幕不卡在线播放| 亚洲制服欧美久久| 美国一区二区三区在线播放| 日本黄色a视频| 手机av在线免费| 欧美自拍偷拍一区| 亚洲色偷偷色噜噜狠狠99网| 日韩av一二三区| 欧美精品在线观看| 国产激情视频在线播放| 久久久久久久有限公司| 国产精品福利一区二区三区| 6—12呦国产精品| 国产精品jizz在线观看麻豆| 一区二区三区四区五区视频在线观看| www.香蕉视频| 国产精品无码无卡无需播放器| 日韩欧美第二区在线观看| 欧美激情一区二区三区久久久| 欧美性xxxxx极品少妇| 99久久精品情趣| 国产乱子轮xxx农村| 国产精品精品一区二区三区午夜版| 26uuu另类欧美亚洲曰本| 日韩在线不卡一区| 国产激情视频一区| 日韩av在线播| 亚洲a一区二区| 久久精品国产亚洲av高清色欲| 国产精品一区二区三区免费 | 日本精品久久久久久久| 免费裸体美女网站| 欧美日韩亚洲不卡| 尤物网站在线观看| 国产精品福利观看| 亚洲成人在线观看视频| 天天干天天操天天操| 中国丰满熟妇xxxx性| 在线精品国产欧美| 久久蜜臀精品av| 加勒比av在线播放| 伊人精品久久久久7777| 精品一区电影国产| www.成人在线| 久久久无码精品亚洲国产| 成年人免费观看的视频| 尤物九九久久国产精品的分类| www.久久精品| 中文在线观看免费网站| 日韩中文字幕在线不卡| 在线观看日韩www视频免费| 91视视频在线直接观看在线看网页在线看| 国产男女猛烈无遮挡a片漫画| 成人做爰66片免费看网站| 91精品国产手机| 激情五月婷婷综合| 希岛爱理中文字幕| 国产激情在线看| 久久国产视频网站| 久久久久久久久久久久久久久99| 久久久久成人网站| 国产精品无码人妻一区二区在线| 久久久久久久久久婷婷| 欧美视频一区二区三区…| 久久婷婷影院| 天天干天天操天天拍| 欧美aaa在线观看| 欧美成人黑人xx视频免费观看| 亚洲六月丁香色婷婷综合久久 | 国产精品扒开腿做爽爽爽a片唱戏| 91视频九色网站| 亚洲国产精品人久久电影| 91麻豆成人久久精品二区三区| 中文字幕一区在线播放| 亚洲一二三av| 欧美激情www| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美aⅴ...| 日本高清视频免费观看| 无码国产69精品久久久久同性| 伊人av成人| 国产a∨精品一区二区三区不卡| 在线观看亚洲a| 国产成人av电影| 久久久久99精品成人片三人毛片| 午夜精品免费看| 日韩欧美在线电影| 97超级碰在线看视频免费在线看| 欧美图区在线视频| 精品中文字幕一区二区| 超碰中文字幕在线| 欧美性受xxxx黒人xyx性爽| 色播亚洲视频在线观看| 欧美一级电影免费在线观看| 91精品国产一区二区| 国产精品美女久久久久久久| 日韩电影免费在线看| 日日摸天天添天天添破| 久久久久久久人妻无码中文字幕爆| 这里只有精品66| 成人精品一区二区三区电影黑人| 亚洲香蕉av在线一区二区三区| 亚洲国产一区在线观看| 成人高清视频在线观看| 亚洲av无码乱码国产精品| 免费无遮挡无码永久在线观看视频| 天天综合成人网| 国产精品99久久久久久大便| 成人做爰www免费看视频网站| 久久久电影免费观看完整版| 日韩一区二区三区免费观看| 亚洲综合无码一区二区| 成人激情av网| 久久人人超碰| 一区二区精品视频在线观看| 久久久久久久久久一区二区三区| 国模无码视频一区| 一区二区三区视频在线观看免费| 日韩在线观看a| 一区二区三区四区| 欧美精品尤物在线| 国产女人水真多18毛片18精品 |