Google官方指导文章:开始用Kotlin开发Android

首先是相关资源

AndroidStudio 3.0 canary 1 官方下载地址
没梯子的点击 百度云下载地址
Google 提供的关于Android O新特性和Kotlin的demo 点击 Kotlin Demo

AndroidStudio 3.0已经完全支持Kotlin了,所以现在你可以方便的新建一个基于Kotlin的Android项目或者在你现有项目的基础上增加Kotlin的代码,你还可以将你的java代码转换为Kotlin。使用Kotlin开发,你可以完全的使用现在AndroidStudio附带的所有工具,像autocomplete,lint,checker,refactoring,debugging等。
这篇文章主要展示如何在AndroidStudio上面使用Kotlin开发。如果你要了解更多关于Kotlin语言的知识,参考:官方推荐的kotlin资源

创建一个支持Kotlin的新项目

想要创建支持Kotlin的项目你只需要在新建项目的向导页面勾选include Kotlin Support

新建kotlin项目

当你新建一个activity时,它的代码将会以kotlin的形式展现,不过这种只支持phone和tablet的部分模板类,不支持的将会自动的从java代码转为kotlin代码,虽然展现的还是Kotlin代码,但是这些转换过来的Kotlin代码可能不是非常符合Kotlin语言规范的。

在已有项目中添加kotlin支持

如果想在已有项目中添加Kotlin代码,点击FIle > New 选择一个AndroidStudio提供的模板

选择新建kotlin模板

然后选择kotlin作为source language

选择kotlin作为source language

点击finish就ok了。
或者你可以点击 File > New >Kotlin File/Class去创建一个通用的类。New Kotlin File/Class页面为不同文件提供了不同的选择类型,但是Kotlin可以自动的方便的切换文件的类型,所以即使你选择一种类型的文件也可以方便的修改为其它类型的。
默认情况下,Kotlin文件试试保存在src/main/java/.. 下的,这样你可以方便的找到Kotlin文件,但是如果你想讲Kotlin和java文件区分,你可以将kotlin文件放在src/main/kotlin/..替代。当你更换Kotlin的文件目录时,你需要在gradle中如下配置才可以。

android {
   sourceSets {
       main.java.srcDirs += 'src/main/kotlin'
   }
}

将现有代码转换为kotlin代码

使用AndroidStudio 3.0,打开一个java文件,选择 Code > Convert Java File to Kotlin File.
或者新建一个kotlin文件,然后把你的java代码粘贴进来,会提示你是否将java代码转换为kotlin,选择yes,但你勾选Don’t show this dialog next time时,下次将会自动转换。

用Kotlin使用android的API

Kotlin适合java完全通用的,所以通过Kotlin调用API会和Java十分相似。

通过Kotlin声明Activity

class MyActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity)
  }
}

通过Java声明Activity

public class MyActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
  }
}

通过Kotlin表示On-click listener

val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener {
  ...
}

通过Java表示On-click listener

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {

  }
});

通过Kotlin表示item click listener

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表示item click listener

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;
  }
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值