Android 大神帶你分分鐘學會kotlin

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 )

 

 

陸續更新中,敬請期待(由於本人被優化了,所以本篇文章暫時就更新到這裏)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章