前言我就不介绍了,想要了解的可以去看下官方文档下面是kotlin中文的文档:
发现了一个kotlin论坛,用户量还不多,但是应该是个精品网站,感兴趣的可以去看看:http://kotlinclub.com/
https://www.gitbook.com/book/wangjiegulu/kotlin-for-android-developers-zh
我使用的Android studio2.3.2,需要下载kotlin插件,添加步骤:
在Android Studio中打开Settings,选择Plugins选项,输入kotlin,没有安装的会有提示,或者直接点击Browse Repositories,在打开的新窗口中搜索Kotlin,如下图所示。
我这是已经安装过得,如果未安装会出现install的按钮,点击安装,安装完成后重启Android studio即可。
重启后我们可以去尝试新建kotlin项目,这时候新建的时候就会多出了选项:
这时候就可以选择新建了,新建的时候会弹出对话框点击OK即可;接下来会进行了自动配置,等配置完成后build.gradle
会是这样的:
buildscript { ext.kotlin_version = '1.1.2-4' repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } task clean(type: Delete) { delete rootProject.buildDir }
其中红色标注为kotlin的自动配置,到这里已经算完成kotlin的配置了,接下来就是实践了,下面是我用的方式:
可以看下code最下方有Convert Java File to Kotlin File这一项,这个选项可以将java类转换成kotlin类,我首先做的就是找一个activity转换成kotlin形式的,用意就是看看转换后官方是怎么写的,这样更有利于学习,下面是转换后的代码:
class KotlinDemoActivity : AppCompatActivity(), View.OnClickListener { private var textView: TextView? = null private var img: ImageView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_kotiln_test) initView() setOnlick() getObj(9) } private fun setOnlick() { textView!!.setOnClickListener(this) img!!.setOnClickListener(this) } private fun initView() { textView = findViewById(R.id.text_view) as TextView textView!!.text = cons.toString() img = findViewById(R.id.imageView) as ImageView img!!.setImageResource(R.mipmap.ic_launcher) } private val cons: Int get() { val a = 10 val b = 12 val c = 1 return a + b * a - c / a } private fun getObj(obj: Any): String { if (obj is String) { return obj } return "" } override fun onClick(v: View) { when (v.id) { R.id.text_view -> Toast.makeText(this@KotlinDemoActivity, R.string.click_text, Toast.LENGTH_SHORT).show() R.id.imageView -> { Toast.makeText(this@KotlinDemoActivity, "img", Toast.LENGTH_SHORT).show() val intent = Intent() intent.setClass(this@KotlinDemoActivity, KotilnTest::class.java) intent.putExtra("img", "ssss") startActivity(intent) } } } }
这是官方转换后的;
我们在网上查阅资料的时候也会遇到这种情况:不用调用什么findviewById的方式直接给组件赋值:
text_view.text = "ssssgggg"
其中text_view 是组件的ID,后面就相当于setText();但是有的同学整了好久就是调不出来text,其实这还需要在gradle中配置一段代码:
apply plugin: 'kotlin-android-extensions'
就这段,配上以后就能放弃findviewById的方法