Kotlin之编写第一个类

The Recycler Adapter

我们同样需要一个RecyclerView的Adapter。之前我在我博客中讨论过RecyclerView,如果你以前没有使用过,它可能会有所帮助。

RecyclerView中所使用到的布局现在只需要一个TextView,我会手动去创建这个简单的文本列表。增加一个名为ForecastListAdapter.kt的Kotlin文件,包括如下代码:

class ForecastListAdapter(val items: List<String>) :
        RecyclerView.Adapter<ForecastListAdapter.ViewHolder>() {
        
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        return ViewHolder(TextView(parent.context))
    }
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.textView.text = items.[position]
    }
    
    override fun getItemCount(): Int = items.size
    
    class ViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
}

又是如此,我们可以像访问属性一样访问context和text。你可以保持以往那样操作(使用getters和setters),但是你会得到一个编译器的警告。如果你还是倾向于Java中的使用方式,这个检查可以被关闭。但是一旦你使用上了这种属性调用的方式你就会爱上它,而且它也节省了额外的字符总量。

回到MainActivity,现在简单地创建一系列的String放入List中,然后使用创建分配Adapter实例。

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?) {
    ...
    val forecastList = findViewById(R.id.forecast_list) as RecyclerView
    forecastList.layoutManager = LinearLayoutManager(this) 
    forecastList.adapter = ForecastListAdapter(items)
}
    

List的创建

尽管我会在本书后面来对Collection进行讲解,但是我现在仅仅简单地解释你可以通过使用一个函数listOf创建一个常量的List(很快我们就会讲到的immutable)。它接收一个任何类型的vararg(可变长的参数),它会自动推断出结果的类型。

还有很多其它的函数可以选择,比如setOfarrayListOf或者hashSetOf

为了优化项目的结构,我也移动了一些类到新的包里面。

我们在上面很简短的代码中看到了很多新的东西,所以我会在下一章讲到它们。我们现在必须要学习一些比如基本类型,变量,属性等比较重要的概念才能继续下去。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 段树江阅读 126评论 0 0
  • 生活总有一些期待。 明天就是假期开始了。哈哈,第一天,和好朋友,相约黄埔军校。 已经准备好了,要带的东西,书本,鞋...
    大荣美子阅读 238评论 0 1
  • 图片所有权归青石集 请勿转载(如需转载请联系作者) 关于Art Deco风格珠宝在广告设计上的一些思考 合作品牌:...
    青石集阅读 744评论 0 1
  • 其实 事实好像是 当你把所谓的外部条件准备齐全的时候 自身体内的懒惰因子便会走出来阻碍你的行动 排球考完了。有遗憾...
    yee啊阅读 102评论 0 0
  • “你会不会忽然的出现在街角的咖啡店,我会带着笑脸回首寒暄,和你坐着聊聊天。” 好久不见,只不过是你忽然出现在街角的...
    Black兔阅读 341评论 0 1

友情链接更多精彩内容