kotlin 定義變量的語法爲: var/val name:Type (關鍵字 類型名稱:類型)
var 關鍵字是 variable 的簡稱,表示該變量可以被修改
val 關鍵字是 value 的簡稱,表示該變量一旦賦值後不能被修改
靜態方法:(下面是書寫格式)
class UrlUtils {
companion object{
val BASE_URL = "http://www.baidu.com/"
val REGISTER = "http://www.baidu.com/"
val LOGIN = "http://www.baidu.com/"
}
}
class UrlUtils {()
companion object{ (這一行是固定格式)
val BASE_URL = "http://www.baidu.com/"
} }
實體類的生成:
data class UserBean(val code:String,val name:String,val pws:String)
data class 類名(val 變量:數據類型)
這一行代碼可以生成set、get、toString方法
實體類生成工具
像Java中的GsonFormat, Kotlin中也有插件JsonToKotlinClass
安裝完以後,打開插件的快捷鍵 Alt+K
不會使用可參考:https://www.jianshu.com/p/3edf2b96c3d8
Gson的使用:
解析json數據
val gson = Gson()
val bean =gson.fromJson<UserBean>(toString, UserBean::class.java)
關鍵字 接收參數=gson.fromJson<bean類>(json數據,bean類::class.java)
數據轉成json類型
val a = "sdfsdfdsfsfs"
val gson = Gson()
gson.toJson(a)
gson.toJson(數據)
Map集合的使用
val map = HashMap<String,String>()
map.put("name","abc")
map.put(key,value)
OkHttp3在kotlin中的簡單使用
var body = FormBody.Builder()
.build()
val client = OkHttpClient()
val request = Request.Builder().post(body)
.url(UrlUtils.REGISTER)
.build()
val call = client.newCall(request)
call.enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
// Log.d("UPDATE", "onFailure: $e")
}
override fun onResponse(call: Call, response: Response) {
// Log.d("UPDATE", "OnResponse: " + response.body()?.string())
if (response.isSuccessful) {
val toString = response.body()?.string()
// Log.d("UPDATE", "OnResponse: " + toString)
val gson = Gson()
val bean = gson.fromJson<UserBean>(toString, UserBean::class.java)
val msg = bean.msg.toString()
if (bean.code.equals(200)) {
var intent = Intent()
intent.setClass(
this@RegisterActivity, LoginActivity::class.java
)
startActivity(intent)
} else if (bean.code.equals(500)) {
runOnUiThread(Runnable {
Toast.makeText(this@RegisterActivity, msg, Toast.LENGTH_SHORT)
.show();
})
}
}
}
})
我發現所有的對象,都不需要new
var intent = Intent()
intent.setClass( this@RegisterActivity, LoginActivity::class.java )
intent.setClass( 上下文(this@當前頁面Activity), 要跳轉的Activity )
陸續更新中,敬請期待(由於本人被優化了,所以本篇文章暫時就更新到這裏)