2.0 编写你的第一个类

2.1 创建一个layout

gradle添加recyclerview的依赖
编写布局文件activity_main

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/forecast_list"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

初始化recyclerView

        //这里使用老的findViewById()的方式
        val forecastList = findViewById<RecyclerView>(R.id.forecast_list)
        //对象实例化与Java中不同,去掉了new关键字
        forecastList.layoutManager = LinearLayoutManager(this)

2.2 创建RecyclerView Adapter

ForecastListAdapter

class ForecastListAdapter(private val items: List<String>) : RecyclerView.Adapter<ForecastListAdapter.ViewHolder>() {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        return ViewHolder(TextView(parent.context))
    }

    override fun getItemCount(): Int = items.size

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        //直接属性调用的方式,很赞
        holder.textView.text = items[position]
    }

    class ViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
}

调用adapter

class MainActivity : AppCompatActivity() {
    //创建List的方式
    private val items = listOf(
            "Mon 6/23 - Sunny - 31/17",
            "Tue 6/24 - Foggy - 21/8",
            "Wed 6/25 - Cloudy - 22/17",
            "Thurs 6/26 - Rainy - 18/11",
            "Fri 6/27 - Foggy - 21/10",
            "Sat 6/28 - TRAPPED IN WEATHERSTATION - 23/18",
            "Sun 6/29 - Sunny - 20/7"
    )

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //这里使用老的findViewById()的方式
        val forecastList = findViewById<RecyclerView>(R.id.forecast_list)
        //对象实例化与Java中不同,去掉了new关键字
        forecastList.layoutManager = LinearLayoutManager(this)
        //又是直接属性调用的方式,真的很赞
        forecastList.adapter = ForecastListAdapter(items)
    }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,742评论 25 709
  • 【Android 控件 RecyclerView】 概述 RecyclerView是什么 从Android 5.0...
    Rtia阅读 308,318评论 27 440
  • 我遇见过或圆或缺的月亮,也在一个清晨 , 偷尝过一杯欢声笑语 。 我路过蝴蝶比翼双飞 , 路过大雁成群结队, 路过...
    NICQ陈旗阅读 4,140评论 0 1
  • 我是人间的常客,我一年自己都会来,你们开到我是谁了吗?我就是雨。 你们应该还不知道我的形成吧!那就...
    晋沂鑫阅读 1,711评论 0 0
  • 前言 block可以叫回调代码块,是iOS开发中至关重要的形式之一。不同的编程语言都会用到block, 只是体现形...
    人仙儿a阅读 2,490评论 0 0

友情链接更多精彩内容