KotlinLearning8-高阶函数的应用

Kotlin-Learning Day 8

简化Share Preferences用法

在此之前先回顾一下Share Preferences的传统用法

{
	val editor = getSharePreferences("data",0).edit()
	editor.apply{
		putString("name","Tom")
		putInt("age",18)
		putInt("length",18)
	}
	editor.apply()
}

基本顺序是

  1. 调用getSharePerferences的edit()方法获取SharePerferences.Editor对象
  2. 往里面添加数据
  3. 使用apply方法提交

用高阶函数来做,可以做的更好

fun SharedPreferences.open(block:SharedPreferences.Editor.()->Unit){  
    val editor = edit()  
    editor.block()  
    editor.apply()  
}

open是扩展函数,接收一个函数类型的参数,这个函数类型是SharedPreferences.Editor类型的,在函数内是block。
在open函数内拥有SharePreferences的上下文,可以直接调用edit()方法。
实现好后,就可以直接使用了,非常方便。

getSharedPreferences("data",Context.MODE_PRIVATE).open{
	putString("name","Tom")
	putInt("age",18)
	putInt("length",18)
}

最后有个好消息是,其实Google提供的KTX扩展库已经包含了上述用法。
因此实际上我们可以直接这么写

getSharedPreferences("data",Context.MODE_PRIVATE).edit{
	putString("name","Tom")
	putInt("age",18)
	putInt("length",18)
}

只是将open换成edit就可以。

简化Content Values

在KTX库中,Android提供了contentValuesof()方法,可以像mapof一样插入数据。

val values1 = contentValuesOf("name" to "Game of Thrones","author" to "George Martin","pages" to 720,"price" to 20.85)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值