Skip to content

Latest commit

 

History

History
124 lines (93 loc) · 5.62 KB

2_Get_Started_with_Kotlin.md

File metadata and controls

124 lines (93 loc) · 5.62 KB

开始动手在 Android 中使用 Kotlin

原文链接:Get Started with Kotlin on Android  |  Android Developers

Android Studio 3.0 或更高版本对于 Kotlin 有着完整的支持,因此您可以轻易地创建使用 Kotlin 的新项目、为您现有的项目添加 Kotlin 文件,或者将 Java 代码转换成 Kotlin。这样一来,您你就能使用 Android Studio 为 Kotlin 提供的所有工具,例如代码自动补全(autocomplete)、代码风格检查(lint checking)、重构和调试,等等。

忍不住想上手来一发?请查看我们的 Kotlin 案例。欲了解有关 Kotlin 编程语言的更多信息,请参阅学习 Kotlin 的资源

为现有的应用添加 Kotlin 代码

欲获得使用 Kotlin 的技能和自信,我们推荐一条循序渐进的方法:

  1. 从使用 Kotlin 编写测试开始:测试对于检查代码在修改后是否工作有着重要的作用,让您能更安心地重构代码。而在把 Java 代码转换成 Kotlin 时,测试就更至关重要了。由于测试在打包阶段并不和您的应用绑定,您可以放心大胆地通过它们向代码库中添加 Kotlin 代码。
  2. 使用 Kotlin 编写新的代码:在将现有 Java 代码转换成 Kotlin 之前,请试着使用 Kotlin向您的应用中添加少量新代码。譬如,您可以从一个不大的类或者顶层的助手函数开始。请务必为这些 Kotlin 代码添加相关的注释,以确保它们可以和 Java 代码协同互用。
  3. 将现有代码更新为 Kotlin:一旦您已经熟悉了使用 Kotlin 编写新代码,就可以把您现有的 Java 代码转换成 Kotlin 了。您可能需要将少量使用 Java 代码实现的功能提取出来、并转化成 Kotlin 类和顶层的函数。

先试试 Android Studio 中能够将 Java 文件转成 Kotlin 的 代码转换器吧。您还可以把剪贴板里的 Java 代码在拷贝到 Kotlin 文件中的时候进行转化。

Android API 和 Kotlin 范例

Kotlin 提供了和 Java 的完全的互用性(interoperability),因此调用 Android API 常常看起来和 Java 代码完全一致。此外,您现在还能把这种方法调用同 Kotlin 的语义特性结合起来。

我们还在努力为所有的 Android API 文档提供提到的 Kotlin 参考。您可以在 Android API 文档概述中找到可用的 Kotlin 参考。

如下这些例子展示了使用 Kotlin 和 Java 来调用相同的 Android API 的差异:

声明一个 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);
  }
}

创建一个 OnClickListener

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) {
    ...
  }
});

创建一个 ItemSelectedListener

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 提供了众多语法糖(syntactic sugar)的情况下,很容易做得过火。
  • 最好确立让整个团队最适应的代码规范和风格。KotlinAndroid Kotlin 代码风格指南里有不少格式化 Kotlin 代码的靠谱建议。