Kotlin 的demo
来源:互联网 发布:北京现代软件学院网站 编辑:程序博客网 时间:2024/06/05 17:52
Activity
设置点击事件
login.setOnClickListener(this)register.setOnClickListener(this)
用when
代替switch
override fun onClick(v: View?) { when (v?.id) { R.id.login -> if (checkContent(true)) { dialog = SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE) .setTitleText("正在登录...") dialog?.setCancelable(false) dialog?.show() loginPresenter?.login(username.text.toString(), password.text.toString()) } R.id.register -> if (checkContent(false)) { dialog = SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE) .setTitleText("正在注册...") dialog?.setCancelable(false) dialog?.show() loginPresenter?.register(username.text.toString(), password.text.toString(), email.text.toString()) } } }
注意:直接使用id
作为变量的时候,要在Module
的gradle
里面加入扩展,才能使用,不然会报错
apply plugin: 'kotlin-android-extensions'
Retrofit+RxJava
Retrofit
结合RxJava
能快捷的使用网络请求。
创建Service
接口,Kotlin的类型是写在后面
interface RetrofitService { /** * 注册 * key 用户申请的appkey * username 用户名(一个key只能存在唯一username) * password 用户密码(建议加密) * email 邮箱 */ @GET("rigister") fun userRegister( @Query("username") username: String, @Query("password") password: String, @Query("email") email: String, @Query("key") key: String = Constant.KEY ): Observable<RegisterResponse> /** * 登录 * key 用户申请的appkey * username 用户名 * password 用户密码 */ @GET("login") fun userLogin( @Query("username") username: String, @Query("password") password: String, @Query("key") key: String = Constant.KEY ): Observable<LoginResponse>}
创建Retrofit
,使用伴生对象创建,类型静态变量使用
class RetrofitUtils<T> { companion object { /** * 创建Retrofit */ fun create(url: String): Retrofit { ... return Retrofit.Builder() .baseUrl(url) .client(okHttpClientBuilder.build()) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build() } val retrofitService: RetrofitService = RetrofitUtils.getService(Constant.REQUEST_BASE_URL, RetrofitService::class.java) /** * 获取ServiceApi */ fun <T> getService(url: String, service: Class<T>): T { return create(url).create(service) } }}
Retrofit
结合RxJava
RetrofitUtils .retrofitService .userLogin(username, password) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe( { ... })
使用对象声明
在写项目的时候,一般会将常量统一写到一个类里面,然后设置静态变量,由于在Kotlin中不存在静态变量,所有就有对象声明的存在,对象声明比较常用的地方就是在这里,对象声明用Objcet
关键字表示。
object Constant { /** * baseUrl */ val REQUEST_BASE_URL = "http://apicloud.mob.com/user/" val KEY = "1be865c0e67e3"}
使用的时候直接类名加.
加变量名,如Constant.REQUEST_BASE_URL
使用数据类
前面说过,Kotlin的惯用语法是有写POJO类,一般写那种类都是用data
修饰的类,也就是数据类表示,只保存数据的类(JavaBean
)。
data class LoginResponse(val msg: String, val result: LoginResultResponse, val retCode: String)
使用扩展函数
fun loge(tag: String, content: String?) { Log.e(tag, content ?: tag)}
调用的时候直接使用loge(TAG, "content")
阅读全文
0 0
- Kotlin 的demo
- Kotlin创建的小Demo
- kotlin入门系列-第一个kotlin的android demo
- Kotlin初体验:一个简单了解Kotlin的Demo
- Kotlin+RxJava+Retrofit2的简单Demo
- Kotlin和RecyclerView的一个demo
- 使用Kotlin优雅的开发Android应用,附demo
- android新开发语言Kotlin的入手Demo
- 我的第一个android kotlin小demo 文件选择器
- Kotlin实战(一): 写一个登录的Demo
- kotlin简单小demo,请求,解析,gson的使用,volley的单例
- Android AndroidStudio 详解Kotlin的安装和使用(附下载demo)
- 用Kotlin语言写一个简单的Android Demo(有详细步骤和各种解决方法)
- Google官方Android O和kotlin Demo
- Android Kotlin 开发--初体验Demo
- Kotlin的初窥之kotlin配置
- Kotlin:Google让我们使用Kotlin的理由
- Kotlin第二章:Kotlin 的基本语法
- Apache 2.4.16、PHP5.6.11安装教程
- js中toString、toLocaleString、valueOf函数区别
- C++ Heap corruption detected
- 简易js网页实时时钟日历
- Apache php无法开启php_curl
- Kotlin 的demo
- IIS 支持 ajax 跨域
- 中国天气预报数据API收集
- 百度地图 判断一个标注点是否在多边形区域里
- Web Service 那点事儿(2)—— 使用 CXF 开发 SOAP 服务
- SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'dtdate' 解决方法
- 等比缩放之自适应神器——css3的rem
- android移动开发学习笔记(二)神奇的Web API
- 《我与Android不得不说的故事-1-立贴明志》