全程对照教程操作,写下部分对照java语言的体会
学习了kotlin语言中Activity的创建,布局的创建
TextView, Button的显示和响应
Activity的跳转
with方法的使用
静态方法的创建
单例的创建
顶层方法的创建(Kotlin特有)
//继承和接口不再使用extends和implement,统一使用:比较简洁
class CreateNewActivity : Activity() {
//方法统一使用fun为关键字
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//与原android相同的布局加载方式
setContentView(R.layout.kotlin_test_activity)
//可直接调用button的id,无需再findViewById
//可直接写执行逻辑,无需再new OnClickListener
tran_test_btn.setOnClickListener { ToastUtils.toast(this, "This is a test") }
tran_click_jump.setOnClickListener {
//无需new Intent
//TestActivity.java写成TestActivity::class.java
val intent = Intent(this, TestActivity::class.java)
startActivityForResult(intent, 1)
}
val list = listOf<String>("apple", "orange", "banana")
//遇到集中重复的变量调用时,可使用with,run,apply
val text = with(StringBuilder()) {
append("this start \n")
for (str in list) {
append(str).append("\n")
}
append("this end \n")
toString()
}
tran_test_with_tv.setText(text)
testStaticFun(this)
testTopFuns(this)
}
//static方法使用companion object包裹
companion object {
fun testStaticFun(context: Context) {
ToastUtils.toast(context, "test static")
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when(requestCode) {
//when结合1->表达原来的requestCode==1的写法
1 -> if(resultCode == RESULT_OK) {
ToastUtils.toast(this, "it is ok")
}
}
}
}
TestToTopFuns.kt
fun testTopFuns(context:Context) { ToastUtils.toast(context, "this is a top funs") }
ToastUtils.kt
object ToastUtils {
fun toast(content: Context, text:String) {
Toast.makeText(content, text, Toast.LENGTH_LONG).show()
}
}
|