今天开始,五万和大家一起来学习Kotlin
Kotlin在Android Studio 3.0中得到了充分的支持,因此很容易创建带有Kotlin文件的新项目,将Kotlin文件添加到现有项目中,并将Java语言代码转换为Kotlin。然后,您可以使用您的Kotlin代码使用所有Android Studio的现有工具,比如autocomplete、lint checker、重构、调试等等。
这个页面向您展示了如何在Android Studio中开始使用Kotlin。
用Kotlin创建一个新的项目。
1.在Android Studio中,点击File > New > New Project.。或者,如果你刚刚打开Android Studio,看到Android Studio窗口的欢迎,点击启动一个新的Android Studio项目。
2.在第一个屏幕上,检查包括Kotlin支持。这是唯一的区别。
3.单击Next并继续通过向导,直到完成为止。
当您选择一个活动模板时,它将在Kotlin代码中提供。
目前,只有一些手机和平板电脑的模板是使用了惯用的Kotlin代码。
其余的代码将从Java模板自动转换为Kotlin—您仍然可以在整个过程中获得Kotlin代码,但是一些代码可能还没有使用Kotlin的最佳语言特性。
就像Java文件一样,Kotlin文件保存在src/main/ Java /目录中。
将Kotlin添加到现有项目中。
如果您想要将Kotlin代码添加到现有的项目中,只需单击File > New并选择一个不同的Android模板。如果您没有看到这个菜单中的模板列表,首先打开项目窗口并选择您的app module.。
在出现的向导中,为源语言选择Kotlin。
继续通过向导,您就完成了。
或者,您可以单击File > New > Kotlin File/Class创建一个基本文件。
The 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'
}
}
将现有的Java代码转换为Kotlin代码。
在Android Studio 3.0中,打开一个Java文件并选择代码>将Java文件转换为Kotlin文件。
或者,创建一个新的Kotlin文件(File > New > Kotlin File/Class),然后在提示时将Java代码粘贴到该文件中,单击Yes将代码转换为Kotlin。您可以查看下次不显示这个对话框,这使得将Java代码片段转储到您的Kotlin文件变得很容易。
使用Android api与Kotlin
Kotlin提供了与Java语言完全的互操作性,因此调用Android api通常与匹配的Java代码完全相同。
除了现在,您可以将这些方法调用与Kotlin的语法特性结合起来。
下面是一些在Kotlin中调用Android api的例子,与Java语言中的相同代码相比:
使用Android api与Kotlin。
1.Activity(活动)
Java
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
}
}
Kotlin
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity)
}
}
2.On-click listener(监听事件)
Java
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
...
}
});
Kotlin
val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener {
...
}
3.Item click listener in Java(列表监听)
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
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
}