編輯:Android開發教程
淺談Kotlin(一):簡介及Android Studio中配置
淺談Kotlin(二):基本類型、基本語法、代碼風格
淺談Kotlin(三):類
淺談Kotlin(四):控制流
本篇介紹Kotlin的控制流語法(if,for,while,when....)
一、if 語句
1、基本用法:
var a = 10; if(a > 5){ Log.i("xqxinfo","a>5成立") }else{ Log.i("xqxinfo","a>5不成立") }
打印日志:xqxinfo: a>5成立
2、判斷結果賦值
var a = 5; var b = 10; var max = if(a>b) a else b Log.i("xqxinfo","最大值max:"+max)
打印日志:xqxinfo: 最大值max:10
注意:可以將結果體放在{}中
var a = 5;
var b = 10;
var max = if(a>b) {a} else {b}
二、for循環
雖然你在使用了collections的函數操作符之後不會再過多地使用for循環,但是for循 環再一些情況下仍然是很有用的。
提供一個迭代器它可以作用在任何東西上面:
for (item in collection) { print(item) }
如果你需要更多使用index的典型的迭代,我們也可以使用 ranges (反正它通常 是更加智能的解決方案):
for (index in 0..viewGroup.getChildCount() - 1) { val view = viewGroup.getChildAt(index) view.visibility = View.VISIBLE }
在我們迭代一個array或者list,一系列的index可以用來獲取到指定的對象,所以上 面的方式不是必要的:
for (i in array.indices) print(array[i])
三、while循環
1、while
var a = 10;
while (a<15){
a++;
Log.i("xqxinfo", "變量a的數值增加1,當前變量a="+a)
}
打印結果:
I/xqxinfo: 變量a的數值增加1,當前變量a=11
I/xqxinfo: 變量a的數值增加1,當前變量a=12
I/xqxinfo: 變量a的數值增加1,當前變量a=13
I/xqxinfo: 變量a的數值增加1,當前變量a=14
I/xqxinfo: 變量a的數值增加1,當前變量a=15
2、do-while
var a = 10; do { a++; Log.i("xqxinfo", "a自增一,當前值:" + a) }while (a<15)
打印結果:
I/xqxinfo: a自增一,當前值:11
I/xqxinfo: a自增一,當前值:12
I/xqxinfo: a自增一,當前值:13
I/xqxinfo: a自增一,當前值:14
I/xqxinfo: a自增一,當前值:15
四、when (效果類似於switch)
1、基本使用
when 表達式與Java中的 switch/case 類似,但是要強大得多。
這個表達式會去 試圖匹配所有可能的分支直到找到滿意的一項。
然後它會運行右邊的表達式。
與 Java的 switch/case 不同之處是參數可以是任何類型,並且分支也可以是一個條 件。
對於默認的選項,我們可以增加一個 else 分支,它會在前面沒有任何條件匹配時 再執行。
var a = 10;
when(a){
10 -> { //滿足a=10的情況
Log.i("xqxinfo","執行a=10的情況")
a = 11
}
11-> {
Log.i("xqxinfo","執行a=11的情況")
a = 12
}
else -> Log.i("xqxinfo","執行a!=10&&a!=11的情況")
}
打印結果:
I/xqxinfo: 執行a=10的情況
注意:{}括起來滿足這個條件的語句,一行寫一個代碼,不要寫在一行裡
2、條件可以是一系列被逗號分割的值。
var a = 10; when(a){ 10,11 -> { Log.i("xqxinfo", "a滿足10||11"); } else -> Log.i("xqxinfo","執行else") }
打印結果:
I/xqxinfo: a滿足10||11
3、可以檢測類型
when(view) { is TextView -> view.setText("I'm a TextView") is EditText -> toast("EditText value: ${view.getText()}") is ViewGroup -> toast("Number of children: ${view.getChildCount()} " else -> view.visibility = View.GONE }
Activity生命周期:一個activity主要有三個狀態:當在屏幕前台時(位於當前任務堆棧的頂部),它是活躍或運行的狀態。它就是相應用戶操作的activity。當它失
我們在前面例子Android RoboGuice 使用指南(4):Linked Bindings 時為簡單 起見,定義MyRectangle和MySquare時為它們定義
在安裝後Android開發環境和創建好Android模擬器之後,就可以開始寫第一個Android應用“Hello,World”。後面的例子均 采用
一個應用通常有多個Activity。每個activity圍繞一個特定的功能設計,用戶可以操作它並且可以啟動其他的activity。舉個例子,一個電子郵件應用可能有一個ac