2.0 編寫你的第一個類

2.1 創(chuàng)建一個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關(guān)鍵字
        forecastList.layoutManager = LinearLayoutManager(this)

2.2 創(chuàng)建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) {
        //直接屬性調(diào)用的方式,很贊
        holder.textView.text = items[position]
    }

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

調(diào)用adapter

class MainActivity : AppCompatActivity() {
    //創(chuàng)建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關(guān)鍵字
        forecastList.layoutManager = LinearLayoutManager(this)
        //又是直接屬性調(diào)用的方式,真的很贊
        forecastList.adapter = ForecastListAdapter(items)
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,036評論 25 709
  • 【Android 控件 RecyclerView】 概述 RecyclerView是什么 從Android 5.0...
    Rtia閱讀 308,454評論 27 440
  • 我遇見過或圓或缺的月亮,也在一個清晨 , 偷嘗過一杯歡聲笑語 。 我路過蝴蝶比翼雙飛 , 路過大雁成群結(jié)隊, 路過...
    NICQ陳旗閱讀 814評論 0 1
  • 我是人間的常客,我一年自己都會來,你們開到我是誰了嗎?我就是雨。 你們應(yīng)該還不知道我的形成吧!那就...
    晉沂鑫閱讀 293評論 0 0
  • 前言 block可以叫回調(diào)代碼塊,是iOS開發(fā)中至關(guān)重要的形式之一。不同的編程語言都會用到block, 只是體現(xiàn)形...
    人仙兒a閱讀 352評論 0 0

友情鏈接更多精彩內(nèi)容