JetBrains,作为广受欢迎的 Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。
目前,Kotlin已正式成为Android官方支持开发语言,所以学习kotlin势在必行。
辅助网站:
class MainActivity : BaseActivity(), View.OnClickListener {
override fun onClick(p0: View?) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
fun onso(){
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
initview()
}
private fun initview() {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
}
一样米养百种人,每个人学习kotlin方法都不一样。而我学习的方法自然是敲,多敲。
初学只能对比java来了解。
var声明变量
val声明常量
fun声明方法
protected
for循环
for (i in 1..100) { …… } // 闭区间:包含 100
for (i in 1 until 100) { …… } // 半开区间:不包含 100
for (x in 2..10 step 2) { …… }
for (x in 10 downTo 1) { …… }
if (x in 1..10) { …… }
集合list
val list = listOf("a", "b", "c")
遇到问题:
1.butterknife和kotlin结合时候会找不到快捷生成findViewById的方法。不用管,kotlin可以直接使用。使用的时候直接打id就行。
2.页面跳转
startActivity(Intent(this, IpScript1Activity::class.java))一直没搞懂::这是什么符号。也没找到相关的,只能死记硬背了。
3.适配器
class BannerAdapter(val context: Context, datas: MutableList) :
BaseQuickAdapter(R.layout.banner_item, datas) {
override fun convert(helper: BaseViewHolder, item: BannerResponse.Data?) {
item ?:return
helper.setText(R.id.bannerTitle,item.title.trim())
val imageView = helper.getView(R.id.bannerImage)
Glide.with(context).load(item.imagePath).placeholder(R.drawable.logo).into(imageView)
}
}
4.构造函数
data class HotKeyResponse(
var errorCode: Int,
var errorMsg: String?,
var data: List?
) {
data class Data(
var id: Int,
var name: String,
var link: Any,
var visible: Int,
var order: Int
)
}
5.常量 const val 等同public final
6.interface接口
interface CollectArticleModel {
/**
* add or remove collect article
*/
fun collectArticle(
onCollectArticleListener: HomePresenter.OnCollectArticleListener,
id: Int,
isAdd: Boolean
)
/**
* cancel collect article Request
*/
fun cancelCollectRequest()
}
7.继承和实现
class MainActivity : BaseActivity(),View.OnClickListener
8.for 循环
for (i in 1..10){
}
多记录学起来会事半“弓背”