一 、Android Studio 3.0以下版本使用Kotlin,則需要添加Kotlin插件
Android Studio 3.0以下版本,默認(rèn)不支持Kotlin,若使用Kotlin則需要添加Kotlin插件,具體配置如下:
Android Studio 2.3.3【穩(wěn)定版】點擊此處下載~
1.在Android Studio中添加Kotlin語言依賴包。
Kotlin 標(biāo)準(zhǔn)庫插件:File–> Setting–>Plugins–>搜索Kotlin–>安裝,如下所示:


2.下載、安裝完成后,重啟Android Studio
二、 Android Studio 3.0創(chuàng)建Kotlin項目
Android Studio 3.0及其以版本上是支持Kotlin開發(fā)的。
Android Studio 3.0【Beta版】下載地址:點擊此處下載~搶先體驗 Android Studio 中的最新功能和改進。
說明:Android Studio 預(yù)覽版可與您的穩(wěn)定版并行運行,因此,您可以同時在這兩個版本中開發(fā)同一項目。詳情查看:如何與穩(wěn)定版一起安裝運行
1.使用AndroidStudio創(chuàng)建Kotlin的項目
說明:在AndroidStudio 中 ,在Welcome to Android Studio頁面中點擊 Start new Android Studio project 或者在原本工作區(qū)間中點擊File–>New –>New Projcet 。 接下來,在Create New Projcet中,勾選上include Kotlin Support,最后一路點擊Next。

2. 在項目中添加Kotlin
在File–>New –>在菜單中進行選擇文件類型,如下如圖所示:

如上圖所示向?qū)нM行操作后,在New Android Activity頁面中選擇Kotlin作為開發(fā)語言,然后一路next。

擴展:
Android Studio是很強大的,還提供其他方式創(chuàng)建Kotlin文件
點擊Flie–>New –>Kotlin File/Class 創(chuàng)建一個基本文件。 在New Kotlin File/Class 彈窗中,輸入文件名,可以從多中Kind選擇一種類型。 不必要擔(dān)心創(chuàng)建錯文件類型,在編寫代碼中聲明類型時候,文件會自動切換到聲明所對應(yīng)的類型。
修改Kotlin所存放的路徑:
默認(rèn)情況下,Kotlin文件存放在src/main/java/,與java在同一個文件夾下。 若是需要隔開java文件和Kotlin文件,指定一個專門存放Kotlin文件的文件夾。 例如,在src/main 路徑下創(chuàng)建一個kotlin目錄,然后需要在Gralde指定sourceSets配置:
android {
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
3. 轉(zhuǎn)換Java代碼到Kotlin代碼
在項目中,打開一個java文件,點擊最上面窗口中Code–>Convert Java File to Kotlin File
一種方式是,在Kotlin文件中拷貝Java代碼,然后出現(xiàn)提示,將convert the code toKotlin,勾選中選擇下次不提示該彈窗,這樣也實現(xiàn)Java代碼轉(zhuǎn)成Kotlin。

4. 在Kotlin語言中使用Android API
Kotlin與Java語言是互通的,交互使用。因此,Kotlin調(diào)用Android API與Java調(diào)用方式類似。這里列舉幾個案例,進行比對(來源官方):
Java編寫Activity:
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity);
}
}
Kotlin編寫Activity:
class MyActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity)
}
}
5.為View設(shè)置點擊事件:
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 {
...
}
6.創(chuàng)建item點擊事件:
Java:
= 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
}