Kotlin程式設計之AndroidStudio(包括3.0與2.x版本)配置與使用
Kotlin程式設計開發Android運用程式的相關介紹:
- Kotlin程式設計之AndroidStudio(包括3.0與2.x版本)配置與使用
- Kotlin程式設計開發Android運用程式(Volley+Gson依賴庫)
- Kotlin程式設計之Kotlin Android Extensions(擴充套件外掛)
- Kotlin程式設計之Glide v4 Generated API(Unresolved reference GlideApp)
- Kotlin Android Extensions+Android MVP專案(RxJava+Rerotfit+OkHttp+Glide)
- Anko Layout+MVP(Glide,Retrofit,OkHttp,RxJava)開發Android運用程式
Android Studio 3.0以下版本配置:
這使用的Android Studio 2.3版本,因此,需要新增Kotlin外掛。
在Android Studio中新增Kotlin語言依賴包:
kotlin 標準庫依賴:File–> Setting–>Plugins–>搜尋Kotlin–>安裝,如下所示:
安裝完後,重啟Android Studiio。
原本的AndroidStudio 存Java語法專案轉成支援Kotlin語法的專案:
以下幾步操作,AndroiStudio自動下載進行配置,以免手動配置出錯。
1. 將Java檔案轉換成kotlin檔案::
開啟Java檔案,然後點選Code–>Convert Java File to Kotlin
2. 新增kotlin的配置:configue–>android Gralde:
3. 選中新增的配置,這裡選擇當前包含Kotlin的專案中新增外掛:
4. 配置好後,在Project的Gradle中新增sync now,AndroidStudio將會自動下載配置
5. 配置好的Projcet的Gralde如下:
6. 配置好的module的Gradle如下:
解讀MainActivity中,Java轉成Kotlin後的程式碼:
/**
* 一個類繼承父類和實現介面的方式; class 類名 :超類名(),介面名
*/
class MainActivity : AppCompatActivity() {
/**
* override用於覆寫繼承父類或者實現介面中方法。
*
* fun 用於標識方法
*
* 引數形式: 引數名: 型別
*
* ? 是用於指定可以為空物件
*
*/
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
執行效果如下:
Android Studio 3.0建立Kotlin專案:
Android Studio 3.0及其以版本上是支援Kotlin開發的。
1. 下載和安裝Android Studio 3.0:
Android Studio 3.0下載: 進入下載頁面
Android Studio預先版本是可以與電腦現有安裝的AndroidStudio版本共存 , 詳情請看多個AndroidStudio共存安裝教程.
2. 使用AndroidStudio建立Kotlin的專案:
在AndroidStudio 中 ,在Welcom toAndroid Studio頁面中點選 Start new Android Studio project或者在原本工作區間中點選File–>New –>New Projcet 。接下來,在Creat New Projcet中,勾選上include Kotlin Support,最後點選Next一路走下去。
最後Kotlin檔案和Java檔案存放路徑相似,存放在src/main/java
目錄下。
3. 在專案中新增Kotlin:
在File–>New –>在選單中進行選擇檔案型別,如下如圖所示:
如上圖所示嚮導進行操作後,在New Android Activity頁面中選擇Kotlin作為開發語言,然後一路next。
Android Studio是很強大的,還提供其他方式建立Kotlin檔案。
點選Flie–>New –>Kotlin File/Class 建立一個基本檔案。在New Kotlin File/Class 彈窗中,輸入檔名,可以從多中Kind選擇一種型別。不必要擔心建立錯檔案型別,在編寫程式碼中宣告型別時候,檔案會自動切換到宣告所對應的型別。
修改Kotlin所存放的路徑:
預設情況下,Kotlin檔案存放在src/main/java/
,與java在同一個資料夾下。若是需要隔開java檔案和Kotlin檔案,指定一個專門存放Kotlin檔案的資料夾。例如,在src/main
路徑下建立一個kotlin目錄,然後需要在Gralde指定sourceSets配置:
android {
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
3. 轉換Java程式碼到Kotlin程式碼
在專案中,開啟一個java檔案,點選最上面視窗中Code–>Convert Java File to Kotlin File
一種方式是,在Kotlin檔案中拷貝Java程式碼,然後出現提示,將convert the code toKotlin,勾選中選擇下次不提示該彈窗,這樣也實現Java程式碼轉成Kotlin。
4. 在Kotlin語言中使用Android API
Kotlin與Java語言是互通的,互動使用。因此,Kotlin呼叫Android API與Java呼叫方式類似。
這裡列舉幾個案例,進行比對(來源官方):
編寫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)
}
}
為View設定點選事件:
- 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 {
...
}
建立item點選事件:
- 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
}
相關文章
- 設計模式之反射與配置檔案設計模式反射
- Kotlin 函式與函數語言程式設計淺析Kotlin函式函數程式設計
- Kotlin 迴圈與函式詳解:高效程式設計指南Kotlin函式程式設計
- Java的中文程式設計與配置心得 (轉)Java程式設計
- C#與.NET入門之C# 8.0和.NET Core 3.0高階程式設計C#程式設計
- 《Python程式設計練習與解答》之程式設計概論Python程式設計
- Spring之RedisTemplate配置與使用SpringRedis
- Kotlin 與 JAVA 不同之處KotlinJava
- linux系統程式設計之程式(一):程式與程式Linux程式設計
- 資料庫模型設計——歷史與版本設計資料庫模型
- 程式設計能力與程式設計年齡程式設計
- JavaScript函數語言程式設計之pointfree與宣告式程式設計JavaScript函數程式設計
- 幽默系列:程式設計師與眾不同之處程式設計師
- php程式設計基本功之isset與emptyPHP程式設計
- C#程式設計之委託與事件(一)C#程式設計事件
- C#程式設計之委託與事件(二)C#程式設計事件
- 《C# 8.0和.NET Core 3.0高階程式設計(第4版)》之“C# 與 .NET 入門 ”C#程式設計
- 程式、程式設計與三論程式設計
- 程式設計師與醫生程式設計師
- 事件與介面程式設計事件程式設計
- 程式設計師與妓女程式設計師
- CentOs下 SVN版本控制的安裝(包括yum與非yum)CentOS
- shell程式設計02——變數定義與使用程式設計變數
- python程式設計之slice與indices函式用法Python程式設計函式
- 程式設計入門之字元編碼與亂碼程式設計字元
- 03 shell程式設計之case語句與函式程式設計函式
- Kotlin 物件導向程式設計 (OOP) 基礎:類、物件與繼承詳解Kotlin物件程式設計OOP繼承
- 服務API版本控制設計與實踐API
- Spark SQL 程式設計API入門系列之Spark SQL的作用與使用方式SparkSQL程式設計API
- 《程式設計師的春天:EOM與程式設計師》程式設計師
- 《說文解字》與程式設計程式設計
- 小說家與程式設計師程式設計師
- 程式設計師與寫作程式設計師
- 程式設計師與MM (轉)程式設計師
- 並口與程式設計 (轉)程式設計
- Kotlin教程(六)Lambda程式設計Kotlin程式設計
- 數學與程式設計——概率論與數理統計程式設計
- 從零開始的Java程式設計之抽象與介面Java程式設計抽象