想要直接运行Kotlin的示例代码?点击这里下载。
在Android Studio 3.0中支持完整的Kotlin语言功能(点击这里下载预览版),因此可以轻松地使用Kotlin文件创建新项目,将Kotlin文件添加到现有项目中,或者将Java语言代码转换为Kotlin。 您可以使用所有Android Studio的现有工具与Kotlin代码,如自动完成,限制检查,重构,调试等。
本文下面附属的视频内容文章展示了如何在Android Studio中开始使用Kotlin。 要了解有关Kotlin语言的更多信息,请查看Kotlin的学习资源。
在新工程中使用Kotlin
要想在新的工程项目中使用Kotlin,只需要在新建工程向导的弹窗中多点击一个选项。
1.在Android Studio中,单击文件>新建>新建项目。 或者,如果您刚打开Android Studio并查看欢迎使用Android Studio窗口,请点击开始一个新的Android Studio项目。
2.在第一个屏幕上,选中包括Kotlin支持。 对比以前创建新工程项目的步骤,这是唯一的区别。
3.单击下一步,继续执行向导,直到完成。
同时你也可以采用Kotlin代码来创建Activity模板。 不过目前只有针对手机和平板电脑的开发模板提供了Kotlin。 虽然其他的模板也同样支持从Java代码自动转换到Kotlin代码,但并没有Kotlin语言的完整支持。
同Java文件一样,Kotlin文件保存在src / main / java /目录中。
现有项目中使用Kotlin
如果要将Kotlin代码添加到现有项目中,只需单击File > New,然后选择各种Android模板之一。 如果在此菜单中没有看到模板列表,请先打开“Project”窗口并选择您的应用程序模块。
在出现的向导中,选择Kotlin作为源语言。
或者,您可以单击File > New > Kotlin File/Class 创建一个基本文件。 New Kotlin File/Class窗口为文件类型提供了几种选择,但是您选择哪一种并不重要,因为Kotlin会在以后更改声明类型时自动切换文件类型。
默认情况下,新的Kotlin文件保存到src / main / java /目录结构下。这样去找Kotlin和Java文件都会很容易。 但是,如果您希望将Kotlin文件与Java文件分开,可以将Kotlin文件放在src / main / kotlin /下。如果想这样做,那么您需要将此目录包含在sourceSets配置中:
android {
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
使用Kotlin代码替换Java代码
在Android Studio 3.0中,打开Java文件,然后选择Code > Convert Java File to Kotlin File。
或者,创建一个新的Kotlin文件(File> New> Kotlin File / Class),然后将Java代码粘贴到该文件中 - 当出现提示时,单击“是”将代码转换为Kotlin。 您可以检查下次不要显示此对话框,这样可以轻松将Java代码段转储到Kotlin文件中。
用Kotlin使用Android的相关API
Kotlin语言与Java语言是完全互通的,因此一般情况下完全可以像Java代码一样调用Android API。 当然除了以下这些调用,你还需要注意一下:
1.定义类
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);
}
}
2.设置点击事件的监听
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) {
...
}
});
3.底部导航栏条目的点击事件监听
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的学习资源。