目前很多公司應聘都會加上一條:熟悉Kotlin語言者優先
那麼我就來說一些Kotlin的簡單的用法
廢話不多說,先來一段代碼:
package com.example.lenovo.permission
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.view.View
import android.widget.Button
import android.widget.ListView
import android.widget.TextView
import com.android.volley.Request.Method.GET
import com.android.volley.Response
import com.android.volley.toolbox.StringRequest
import com.android.volley.toolbox.Volley
import com.google.gson.Gsonimport java.util.*
//繼承使用 : 而不是extends關鍵字
class MainActivity : AppCompatActivity() {
//Kotlin是空類型安全的,所有變量預設被修飾為"不可為空",隻有在類型後加上 ? 才代表可以為空變量
private var permission: Button? = null
private var lv: ListView? = null
private var str: String? = "http://litchiapi.jstv.com/api/GetFeeds?column=6&PageSize=12&pageIndex=3&val=100511D3BE5301280E0992C73A9DEC41"
//顯示override關鍵字:在java中我們使用@override注解使得代碼更簡潔
//但java并不強制試用。在Kotlin中必須顯示使用
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main) initView()
//使用Java開發的時候每次我們建立一個新的listener時,都需要聲明一個onClick函數用于處理監聽回調
//如果用Kotlin,我們可以直接監聽回調的代碼而不用再通過匿名對象傳遞OnClick方法,這個特性被稱為Lambda表達式
permission!!.setOnClickListener({
initData()
})
}
private fun initData() {
val requestQueue = Volley.newRequestQueue([email protected])
val stringRequest = StringRequest(GET, str, object : Response.Listener<String>{
override fun onResponse(response: String?) {
//使用Gson解析json資料
var gson = Gson()
//Data::class.java 表示Java的class
//這裡的fromJson是model對象(資料模型)
val fromJson = gson.fromJson(response, Data::class.java)
var feedsBean = fromJson.paramz.feeds as ArrayList <Data.ParamzBean.FeedsBean>
var adapter = MyAdapter([email protected], feedsBean)
lv!!.adapter = adapter
}
}, null)
requestQueue.add(stringRequest)
}
private fun initView() {
permission = findViewById(R.id.permission) as Button
lv = findViewById(R.id.lv) as ListView
}
}
這是一段非常簡單的Volley請求資料,代碼中可以看到其實Kotlin與java并沒有哪些太大的差別,隻是一些文法和調用順序發生了改變。
就比如說我們的java建立對象是這樣的
private String str = new String();
Kotlin則是這樣的
最大的差別就在于 Kotlin将對象名放在了前邊,然後使用 :進行對象的建立
而且 在類型後邊加上?就代表這個對象可以為空
Kotlin中有兩個關鍵字定義變量,分别是var和val,這兩個關鍵字外形看着差别很小就隻差了一個字母,但實際差别很大的。
var是一個可變變量,這是一個可以通過重新配置設定來更改為另一個值的變量。這種聲明變量的方式和java中聲明變量的方式一樣。
val是一個隻讀變量,這種聲明變量的方式相當于java中的final變量。一個val建立的時候必須初始化,因為以後不能被改變。
好啦 就這些,本人也是初學者,希望有大佬們可以互相交流一下