Android Studio 完全支持 Kotlin,从而可让您使用 Kotlin 文件创建新项目、向现有项目添加 Kotlin 文件,以及将 Java 语言代码转换为 Kotlin 代码。您可以使用 Android Studio 的所有现有工具来处理 Kotlin 代码,包括代码补全、lint 检查、重构和调试等。
不熟悉 Kotlin 语言?请查看以下链接:
- 学习 Kotlin 语言:30 分钟的速成课程,讲解 Kotlin 基础知识。
- Kotlin 示例:一个不断扩充的库,汇集了很多用 Kotlin 编写的 Android 示例应用。
- 其他 Kotlin 资源:一组精心挑选的资源,涵盖 Kotlin 的方方面面,包括示例、Codelab、视频、图书,等等。
将 Kotlin 添加到现有应用
要掌握 Kotlin 使用技能并熟练使用 Kotlin,我们建议您采用以下方法:
- 首先用 Kotlin 编写测试。测试可用于检查代码回归性,并且在重构代码时更有把握。将现有 Java 代码转换为 Kotlin 代码时,测试尤其有用。由于测试在打包过程中不会与应用捆绑在一起,因此它们是将 Kotlin 代码添加到代码库的安全位置。
- 用 Kotlin 编写新代码。在将现有 Java 代码转换为 Kotlin 代码之前,请尝试向应用添加一小段新的 Kotlin 代码。从小型类或顶级辅助函数开始。请务必向 Kotlin 代码添加相关注释,以确保实现与 Java 代码的正确互操作性。
- 将现有代码更新为 Kotlin 代码。对编写新的 Kotlin 代码感到顺手后,您可以将现有的 Java 代码转换为 Kotlin 代码。建议您提取一小部分 Java 功能并转换为 Kotlin 类和顶级函数。
Android Studio 还包含一个代码转换器,可将 Java 文件中的代码转换为 Kotlin 代码。您还可以将从剪贴板粘贴的 Java 代码转换为 Kotlin 文件。
Android API 和 Kotlin 示例
Kotlin 与 Java 语言可以完全互操作,因此调用 Android API 通常看起来与匹配的 Java 代码完全相同。但是现在,您可以将这些方法调用与 Kotlin 的语法功能相结合。
许多 Android API 都提供惯用的 Kotlin 参考。如需了解详情,请参阅 KTX 指南和在 Android 开发中使用 Kotlin 参考文档。
下面是一些在 Kotlin 代码中调用 Android API 的示例(与采用 Java 语言的相同代码相比较):
声明 Activity
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 onNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { R.id.navigation_home -> { textMessage.setText(R.string.title_home) return@OnNavigationItemSelectedListener true } R.id.navigation_dashboard -> { textMessage.setText(R.string.title_dashboard) return@OnNavigationItemSelectedListener true } } false }
Java
private BottomNavigationView.OnNavigationItemSelectedListener onNavigationItemSelectedListener = new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.navigation_home: textMessage.setText(R.string.title_home); return true; case R.id.navigation_dashboard: textMessage.setText(R.string.title_dashboard); return true; } return false; } };
最佳做法
当您能熟练使用 Kotlin 时,应遵循以下准则:
- 侧重于可读性,而不是尽量缩短代码行。用 Kotlin 语法糖很容易过度。
- 您最好确立最适合自己团队的编码规范和惯用语。Kotlin 和 Android Kotlin 样式指南为 Kotlin 代码的格式设置提供了建议。