Kotlin 和 Android
下面是引用Android官方的言语:
Kotlin 现在是 Android的官方语言!Kotlin因其简洁性和强大的功能早已深受众多Android开发者的热爱。因此,我们非常兴奋地宣布支持Kotlin进行Android开发,为开发者带来一流的体验。
Kotlin 编写Hello Android
fun main(args: Array<String>) { println("Hello, android!") }
获取参数的大小fun main(args: Array<String>) { if (args.size == 0) { println("Please provide a name as a command-line argument") return } println("Hello, ${args[0]}!") }
返回值定义Kotlin:fun hasReturnBoolean():Boolean{return true}
fun hasReturnVoid(){}
Java:修饰符 + boolean hasReturnBoolean(){return true};
修饰符 + void hasReturnVoid(){};
for循环两种差异:fun main(args: Array<String>) { for (name in args) println("Hello, $name!") }
kotlin: println("Hello, $name!")
java : println("Hello" + name + "!");
kotlin:for(name in args)
java:for(String name : args)
开发环境1、Android Studio version 3.0 。
用Kotlin创建一个新项目
使用Kotlin新项目需要在“新建项目”向导中再次点击一次:
- 在Android Studio中,单击文件>新建>新建项目。或者,如果您刚打开Android Studio并查看欢迎使用Android Studio窗口,请点击开始一个新的Android Studio项目。
- 在第一个屏幕上,选中包括Kotlin支持。这是唯一的区别。
- 单击下一步,继续执行向导,直到完成。
![]()
当您选择一个活动模板时,它将在Kotlin代码中提供。目前,只有一些手机和平板电脑的模板提供了惯用的Kotlin代码。其余的将自动从Java模板转换为Kotlin,您仍然可以获得Kotlin代码,但有些代码可能还没有使用Kotlin最好的语言功能。
就像Java文件一样,Kotlin文件保存在
src/main/java/
目录中。将Kotlin添加到现有项目中
如果要将Kotlin代码添加到现有项目中,只需单击“ 文件”>“新建”,然后选择各种Android模板之一。如果在此菜单中没有看到模板列表,请先打开“ 项目”窗口并选择您的应用程序模块。
在出现的向导中,选择Kotlin作为源语言。
将现有的Java代码转换为Kotlin代码
在Android Studio 3.0中,打开一个Java文件,然后选择“代码”>“将Java文件转换为Kotlin文件”。
或者,创建一个新的Kotlin文件(File> New> Kotlin File / Class),然后将Java代码粘贴到该文件中 - 当出现提示时,单击Yes(是)将代码转换为Kotlin。您可以检查下次不要显示此对话框,这样可以轻松将Java代码段转储到Kotlin文件中。
使用Kotlin的Android API
Kotlin提供与Java语言的完全互操作性,因此调用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) { ... } });Java中的点击式监听器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 }