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

首頁 > 開發 > 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色无极亚洲影院| 色噜噜亚洲精品中文字幕| 亚洲精品国产电影| 九九精品在线视频| 国产精品18久久久久久首页狼| 中文字幕亚洲精品| 成人字幕网zmw| 日韩麻豆第一页| 91色中文字幕| 亚洲免费中文字幕| 成人精品视频久久久久| 成人情趣片在线观看免费| 亚洲天堂第二页| 国产拍精品一二三| 欧美电影第一页| 成人性生交大片免费看视频直播| 欧美激情一二三| 国产精品久久久久久久久久久久久| 久久中文精品视频| 国产美女精品免费电影| 欧美在线视频一区二区| 国产精品激情av在线播放| 国产精品嫩草视频| 美日韩精品免费视频| 国产精品成人一区二区| 美女精品视频一区| 麻豆国产精品va在线观看不卡| 国产精品美乳在线观看| 欧美日韩亚洲视频| 欧美成人一区二区三区电影| 日本欧美中文字幕| 韩国三级日本三级少妇99| 日韩国产精品一区| 这里只有精品视频在线| 亚洲国产一区二区三区四区| 亚洲网站在线看| 国产97在线视频| 欧美影院成年免费版| 日韩电影在线观看永久视频免费网站| 日韩精品久久久久久久玫瑰园| 久久久伊人日本| 欧美日韩免费区域视频在线观看| 国内精品久久久久| 中文字幕亚洲色图| 久久精品99久久香蕉国产色戒| 国产精品对白刺激| 欧美极品少妇xxxxⅹ喷水| 亚洲第一在线视频| 91在线观看免费高清完整版在线观看| 91精品综合久久久久久五月天| 亚洲国语精品自产拍在线观看| 日本中文字幕成人| 日韩成人av网址| 亚洲国产成人91精品| 欧美剧在线观看| 欧洲成人免费视频| 成人网在线免费看| 最新日韩中文字幕| 国产一区二区日韩精品欧美精品| 国产日韩亚洲欧美| 欧美激情视频在线观看| 国产日韩在线看| 在线观看不卡av| 亚洲欧美国产精品va在线观看| 国产亚洲日本欧美韩国| 韩国日本不卡在线| 久久国产精品免费视频| 日韩av在线免费播放| 精品久久久久久久久久ntr影视| 国产欧美日韩91| 亚洲精美色品网站| 亚洲精品97久久| 69视频在线播放| 丝袜美腿亚洲一区二区| 亚洲a中文字幕| 欧美日韩激情视频| 最近日韩中文字幕中文| 色综合久久中文字幕综合网小说| 亚洲最新在线视频| 91av在线网站| 国产精品久久久久久久久借妻| 91麻豆国产精品| 久久久久久网址| 欧美色道久久88综合亚洲精品| 精品电影在线观看| 亚洲国产黄色片| 久久综合88中文色鬼| 91免费综合在线| 亚洲国产精品热久久| 欧美综合一区第一页| 国产精品日韩一区| 亚洲视频在线观看| 国产v综合v亚洲欧美久久| …久久精品99久久香蕉国产| 久久精品在线视频| 欧美色xxxx| 亚洲欧美精品一区二区| 97国产在线视频| 4k岛国日韩精品**专区| 中国日韩欧美久久久久久久久| 色综合天天狠天天透天天伊人| 国产成人精品一区二区在线| 2019中文字幕在线| 欧美疯狂做受xxxx高潮| 久热爱精品视频线路一| 欧美色播在线播放| 两个人的视频www国产精品| 日韩成人在线电影网| 久久国内精品一国内精品| 国产亚洲精品久久久久久| 欧美视频国产精品| 国产精品免费小视频| 国产精品69精品一区二区三区| 欧美一区在线直播| 国产精品视频最多的网站| 精品亚洲一区二区三区在线观看| 亚洲性夜色噜噜噜7777| 欧美激情aaaa| 国产精品久久久久久久久久ktv| 91沈先生在线观看| 国产精品入口夜色视频大尺度| 欧美视频精品一区| 国产精品永久免费| 青青草精品毛片| 一本色道久久88精品综合| 亚洲自拍欧美色图| 亚洲欧美一区二区三区在线| 国产亚洲aⅴaaaaaa毛片| 久久精品国产久精国产一老狼| 在线观看久久av| 中文欧美日本在线资源| 欧美日韩国产综合视频在线观看中文| 欧美日韩视频免费播放| 亚洲第一天堂无码专区| 国产视频精品一区二区三区| 亚洲第一精品久久忘忧草社区| 国模叶桐国产精品一区| 日本亚洲欧洲色α| 91高潮精品免费porn| 在线日韩av观看| 在线视频国产日韩| 久久全球大尺度高清视频| 欧美巨乳在线观看| 亚洲国产黄色片| 欧美激情视频网| 日韩欧美a级成人黄色| 亚洲护士老师的毛茸茸最新章节| 欧美床上激情在线观看| 色综久久综合桃花网| 91av免费观看91av精品在线| 亚洲**2019国产| 亚洲区在线播放| 欧美日韩亚洲国产一区| 亚洲成人黄色在线| 日韩中文视频免费在线观看| 韩国日本不卡在线| 一级做a爰片久久毛片美女图片| 在线播放日韩专区| 国产91在线高潮白浆在线观看| 黄色精品一区二区| 91在线高清视频| 最近的2019中文字幕免费一页| 国产一区玩具在线观看| 国产精品一香蕉国产线看观看|