Kotlin和RecyclerView的一个demo
来源:互联网 发布:gentoo linux pdf 编辑:程序博客网 时间:2024/05/29 04:35
Kotlin和RecyclerView的一个demo
Kotlin最近比较火,我简单学了一下,写了个小demo,RecyclerView的.
1.使用到的东西
- 语言:Kotlin 不会配置的点这里….滑稽
- RecyclerView
- OkHttp3
- RxJava
- RxAndroid
- Glide
- Gson
2.需要引入的库
implementation 'com.android.support:recyclerview-v7:26.0.0'implementation 'com.squareup.okhttp3:okhttp:3.8.1'implementation 'io.reactivex.rxjava2:rxjava:2.1.2'implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'implementation 'com.google.code.gson:gson:2.8.1'implementation 'com.github.bumptech.glide:glide:4.0.0'
3.首先来看一下RecyclerView子项的布局吧
item_news.xml
就是一个ImageView和一个TextView
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="100dp" android:background="#7dd9da" android:gravity="center_vertical" android:orientation="horizontal"> <ImageView android:id="@+id/iv_news_des" android:layout_width="80dp" android:layout_height="80dp" android:layout_marginStart="10dp" android:scaleType="centerCrop" android:src="@mipmap/ic_launcher"/> <TextView android:id="@+id/tv_news_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="10dp" android:ellipsize="end" android:maxLines="1" android:text="震惊...." android:textColor="#AA000000" android:textSize="20sp" /> </LinearLayout>
4.model,模型类
/** * description: * author feiyang * create at 2017/8/3 17:37 */ data class News( @SerializedName("author_name") var authorName: String?, @SerializedName("category") var category: String?, @SerializedName("date") var date: String?, @SerializedName("thumbnail_pic_s") var thumbnailPicS: String?, @SerializedName("title") var title: String?, @SerializedName("uniquekey") var uniquekey: String?, @SerializedName("url") var url: String? )
5.adapter(*重要)
/** * description:RecyclerView的adapter * author feiyang * create at 2017/8/3 17:41 */ class NewsAdapter : RecyclerView.Adapter <NewsAdapter.ViewHolder> { private var context: Context? = null private var newsList: ArrayList<News>? = null //这是构造方法 constructor(context: Context, newsList: ArrayList<News>) { this.context = context this.newsList = newsList } class ViewHolder : RecyclerView.ViewHolder { var ivDes: ImageView var tvTitle: TextView constructor(itemView: View) : super(itemView) { ivDes = itemView.findViewById(R.id.iv_news_des) tvTitle = itemView.findViewById(R.id.tv_news_title) } } override fun onBindViewHolder(holder: ViewHolder?, position: Int) { if (newsList?.size as Int > position) { val news = newsList?.get(position) //使用Glide加载图片 Glide.with(context).load(news?.thumbnailPicS).into(holder?.ivDes) //设置标题 holder?.tvTitle?.text = news?.title } } override fun getItemCount(): Int { return newsList?.size as Int } override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent?.context).inflate(R.layout.item_news, parent, false) return ViewHolder(view) } /** * 添加数据 */ fun addData(dataList: ArrayList<News>): Unit { //这里不用像java一样判断空了,这里肯定是非空的 if (dataList.size == 0) { return } newsList?.addAll(dataList) notifyDataSetChanged() } /** * 更新数据 */ fun updateData(dataList: ArrayList<News>): Unit { if (dataList.size==0) { return } newsList?.clear() newsList?.addAll(dataList) notifyDataSetChanged() } }
最后
核心代码就在上面了,如果想要完整代码的话,去这里下载 不要积分….
阅读全文
0 0
- Kotlin和RecyclerView的一个demo
- Kotlin初体验:一个简单了解Kotlin的Demo
- 一个RecyclerView写出来的小Demo
- Kotlin的RecyclerView适配器
- 用Kotlin语言写一个简单的Android Demo(有详细步骤和各种解决方法)
- kotlin实现一个Recyclerview与java的比较
- 一个精简的实现RecyclerView可添加header和footer的Demo
- Kotlin 的demo
- Kotlin实战(一): 写一个登录的Demo
- Kotlin编写RecyclerView的Adapter
- recyclerview的demo
- RecyclerView的demo
- Kotlin创建的小Demo
- RecyclerView 使用 和简单demo
- Android Kotlin入门(RecyclerView的使用)
- Recyclerview 常见问题的 Demo 解决办法
- Google官方Android O和kotlin Demo
- kotlin入门系列-第一个kotlin的android demo
- tensorflow分布式训练
- A*算法
- jquery中的 $(#id)与document.getElementById( id )的区别
- Hibernate主键生成策略
- package.json详解
- Kotlin和RecyclerView的一个demo
- Struts2配置详解_配置Action
- laravel 路由组 中添加中间件
- Intellij Idea 创建Web项目并部署servlet
- BT5启动SSH服务
- <context:component-scan>使用说明
- 科技有意思丨你敢不敢在身上植入芯片,科幻片要成真了?
- tensorflow之cnn详细注解
- C# 反编译项目修复