本篇文章给大家谈谈kotlin实现接口,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享kotlin实现接口的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
【Android Kotlin】关于使用Http来获取数据的基本套路
1.新建一个URI.java用来存放网络请求地址和端口地址
如
public class URI {
public static final String LOGIN = "192.168.2.1/api/login";
}
2.新建界面TestActivity.java
3.编写界面
kotlin实现接口,由于只用于测试用,所以在这只写了TextView,具体需求看自己。
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".TestActivity"
android:id="@+id/tv_one"
android:layout_width="0dp"
android:minHeight="48dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
tools:text="数据"/
android:id="@+id/tv_two"
android:layout_width="0dp"
android:minHeight="48dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
tools:text="数据"/
android:id="@+id/tv_three"
android:layout_width="0dp"
android:minHeight="48dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
tools:text="数据"/
android:id="@+id/tv_fore"
android:layout_width="0dp"
android:minHeight="48dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
tools:text="数据"/
android:id="@+id/tv_five"
android:layout_width="0dp"
android:minHeight="48dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
tools:text="数据" /
效果图如下
kotlin实现接口:
4.编写实体类TestBean
这个根据所给
kotlin实现接口的Json数据来写
5.编写适配器TestAdapter(我这里用的是BaseQuickAdapter万能适配器)
class TestAdapter :BaseQuickAdapter<实体类, BaseViewHolder(你要传数据界面) { override fun convert(helper: BaseViewHolder, item: 实体类) {
helper.setText(控件名,item.要放的数据)
.setText(控件名,item.要放的数据)
.setText(控件名,item.要放的数据)
.setText(控件名,item.要放的数据)
.setText(控件名,item.要放的数据)
}
}
6.最主要的一步,编写Activity.java
首先要初始化,由于kotlin不需要初始化控件,所以我们只需要初始化我们的适配器
mAdapter = ManagementAdapter()
然后我们要获取数据(我这里用了一下RxJava的东西)
fun getManagerfee(){
NetWork.getEnquiryDetailsApi().getManagerPriceList(inquiryId).async(this).subscribe({
it.isSuccess.yes {
mAdapter.setNewData(it.data)
}.otherwise {
onRequestFail(it.code, it.message)
}
}
}
7.最后基本上如果需要从上一个界面获取数据,需要从上一个接口带过来一个id的字段,比如我这个从上一个界面带过来的inquiryId,我们就需要写一下object
companion object {
private const val EXTRA_PARAM_ID ="inquiry_id"
fun launch(context: Context, inquiryId: String) {
context.startActivity(Intent(context, ManagePreActivity::class.java).apply {
putExtra(EXTRA_PARAM_ID, inquiryId)
})
}
}
kotlin in操作符
in 操作符大概有两种使用场景
in操作符所作用的对象的条件:只要实现operator修饰的iterator方法(该iterator方法返回Iterator对象)或者实现Iterator接口即可
2.判断是否在区间中
in操作符所作用的对象的条件:只要实现operator修饰的contains方法即可
Android Kotlin Coroutine(3):Job概述
在 Kotlin 中启动一个协程主要有 2 种方式:
一种是通过 launch 启动,一种是通过 async 启动,前者会返回一个 Job 类型的对象,后者会返回一个 Deferred 类型的对象。
Job 顾名思义就是“工作”的意思,每个协程可以想象成是一个工作任务,启动一个协程就是启动一个工作任务,来看看 Job 接口的主要定义:
从前面 Job 的接口定义中可以看到,它与线程 Thread 真的很相似,同样都有好几种不同的运行状态,下面通过几个简单的例子直观的感受一下:
执行结果为:
懒加载模式,协程还没启动,所以 isActive = false
执行结果为:
协程正常启动,所以isActive = true
执行结果为:
协程还没执行完毕,就被取消运行,所以 isCancelled = true
执行结果为:
协程已经执行完毕了,其 isCompleted 肯定为 true 了,再去调用 cancel() 方法,就没有任何影响了,所以 isCancelled = false。一件已经完成的任务,你再去取消它,是没有任何实际意义的了。
执行结果为:
协程还没有启动就取消,发现 isCompleted 与 isCancelled 都为 true,与前面几种情况对比一下,才能真正理解这几种状态的变化。
执行结果为:
协程非正常结束运行,相当于系统把它取消掉了,所以其 isCancelled 也为 true 。
在源码里可以看到以下状态图:
首先它也是一个 Job,所以它拥有 Job 的一切特性。其次,它能返回一个结果值,这点与 Java 里的 Future 类特别相似(如果你熟悉的话)。它比 Job 多了一个方法:
调用该方法时,它会等待该 Job 执行完并返回一个结果值。这是一个 suspend 方法,只能在协程内部调用,它会暂停协程的执行(当然它并不会阻塞线程),当 Job 执行完返回结果后,它又会恢复协程的执行。
一般在这种情况下,你可能会用到它:
从 Job 的接口定义中可以看到,Job 是可以有很多子 Job 的,如果一个 Job 与其他 Job 没有任何关联,那么它的完成及取消就很简单,不会影响到其他 Job 的执行。如果是有父子关系的 Job,那么他们的完成及取消则是会有相互关联关系的。
执行结果为:
执行结果为:
parentJob 被取消之后,childJob2 最后也被取消掉了。
关于kotlin实现接口和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
kotlin实现接口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、kotlin实现接口的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~