ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[Get Started with Kotlin on Android](https://developer.android.com/kotlin/get-started) ### kotlin入门 Kotlin完全支持Android Studio 3.0及更高版本,因此 使用Kotlin文件创建新项目,将Kotlin文件添加到现有项目以及将Java语言代码转换为Kotlin很容易 。然后,您可以将所有Android Studio现有工具与Kotlin代码一起使用,例如自动完成,lint检查,重构,调试等。 https://youtu.be/czKo-jPVweg 想要立即投入运行?看看我们的[Kotlin样品](https://developer.android.com/samples/?language=kotlin)或者参考本文转载的[Kotlin样品示例](https://www.kancloud.cn/alex_wsc/kotlin/691984)。要了解有关Kotlin语言的更多信息,请查看[参考资料以学习Kotlin](https://developer.android.com/kotlin/resources.html)。或者参考本文档的[Resources to Learn Kotlin](https://www.kancloud.cn/alex_wsc/kotlin/691948) ### 将Kotlin添加到现有应用程序中 为了使用Kotlin获得技能和信心,我们建议采用渐进的方法: 1. 首先在Kotlin中[编写测试](https://developer.android.com/studio/test/#add_a_new_test)。测试对于检查代码回归很有用,并且在重构代码时会增加一定的置信度。将现有Java代码转换为Kotlin时,测试特别有用。由于测试在打包过程中未与您的应用程序捆绑在一起,因此它们是将Kotlin添加到代码库的安全位置。 2. 在Kotlin中编写新代码。在将现有Java代码转换为Kotlin之前,请尝试 [向您的应用添加一些新的Kotlin代码](https://developer.android.com/studio/projects/add-kotlin)。从小类或顶级辅助函数开始。请务必在Kotlin代码中添加相关注释,以确保与Java代码的正确互操作性。 3. 将现有代码更新为Kotlin。一旦熟悉编写新的Kotlin代码,就可以将现有的Java代码转换为Kotlin。考虑提取一小部分Java功能并转换为Kotlin类和顶级函数。 首先使用Android Studio [代码转换器](https://developer.android.com/studio/projects/add-kotlin#convert-to-kotlin-code)将Java文件中的[代码转换](https://developer.android.com/studio/projects/add-kotlin#convert-to-kotlin-code)为Kotlin。您还可以将从剪贴板粘贴的Java代码转换为Kotlin文件。 ### Android API和Kotlin示例 Kotlin提供[与Java语言](https://kotlinlang.org/docs/reference/java-interop.html)的完全[互操作性](https://kotlinlang.org/docs/reference/java-interop.html),因此调用Android API通常看起来与匹配的Java代码完全相同。除此之外,您可以将这些方法调用与Kotlin的语法功能结合起来。 我们还致力于通过惯用的Kotlin参考提供所有Android API文档。您可以在[Android参考概述中](https://developer.android.com/reference/)找到指向可用Kotlin参考的链接 。 下面是一些在Kotlin中调用Android API的示例,与Java语言中的相同代码相比: #### 声明一个活动 **kotlin** ~~~ class MyActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity) } } ~~~ **Java** ~~~ public class MyActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity); } } ~~~ #### 创建一个单击监听器 **kotlin** ~~~ val fab = findViewById(R.id.fab) as FloatingActionButton fab.setOnClickListener { ... } ~~~ **Java** ~~~ FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { ... } }); ~~~ #### 创建项目单击侦听器 **kotlin** ~~~ private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.navigation_home -> { mTextMessage.setText(R.string.title_home) return@OnNavigationItemSelectedListener true } R.id.navigation_dashboard -> { mTextMessage.setText(R.string.title_dashboard) return@OnNavigationItemSelectedListener true } } false } ~~~ **Java** ~~~ private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_home: mTextMessage.setText(R.string.title_home); return true; case R.id.navigation_dashboard: mTextMessage.setText(R.string.title_dashboard); return true; } return false; } }; ~~~ ### 最佳做法 当您在Kotlin中获得流利时,请尝试遵循以下准则: * 喜欢可读性而不是最小化代码行。用Kotlin语法糖很容易过火。 * 建立最适合您团队的编码约定和惯用语是一个好主意。在 科特林和 Android的科特林风格指南格式化科特林代码提供了很好的建议。