kotlin
Zaylour
Android,Java,Kotlin
展开
-
分析Handler的流程--源码系列
Handler的源码分析总结1 Handler 简介UI 线程里的操作要更新 UI 时,可以传递消息到主线程,主线程根据需求来更新 ui,可以避免线程操作不安全。2 主要步骤异步通信准备消息发送消息循环消息处理2.1 流程图2.2 基本使用 //继承Handler类 & 复写handleMessage() class workHandler extends Handler { @Override public void han.原创 2020-05-30 21:11:16 · 216 阅读 · 0 评论 -
AIDL的简单使用和实例。
AIDL实现进程间通信,尤其是在涉及多进程并发情况下的进程间通信。简单实现一个需求,app页面的一个按钮,点击就添加一条记录在集合中。1.先创建一个Bean类。public class Book implements Parcelable { private String name; private String Price; public String ...原创 2018-09-14 16:59:18 · 313 阅读 · 0 评论 -
'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference
做app时刚开头就报这个错误了,仔细一看,原来findViewById(R.id.toolbar)不能在setContentView(R.layout.activity_main)的前面。比如:override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)...原创 2018-08-24 15:42:59 · 2288 阅读 · 0 评论 -
error: attribute 'xxx:cardBackgroundColor' not found
error: attribute 'com.zy.gank.gankio:cardBackgroundColor' not found.Message{kind=ERROR, text=error: attribute 'com.zy.gank.gankio:cardBackgroundColor' not found., sources=[E:\gankio\app\src\main\res\...原创 2018-08-28 15:50:07 · 7187 阅读 · 1 评论 -
com.bumptech.glide.Registry$NoModelLoaderAvailableException:Failed to find any ModelLoaders for mode
第一次使用glide时,就报了GlideExecutor: Request threw uncaught throwable com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders for model: h这个异常错误,搞了一个下午,网上也没找到相应的解决办...原创 2018-08-28 10:05:57 · 5138 阅读 · 1 评论 -
android studio在真机测试时突然解析错误,不能安装。if you get this warning for a class which is not actually an inner
if you get this warning for a class which is not actually an inner class,it is because you are using uppercase characters in your package name一开始找了好久,以为是sdk版本弄错了,结果翻译一下这段话的意思是:“如果您对一个实际上不是内部类的类得到警告,那是...原创 2018-07-12 13:30:53 · 248 阅读 · 0 评论 -
kotlin学习(十)
Flow control和ranges我在我们的代码中使用了一些条件表达式,但是现在是时候去更深地去解释它们了。我们通常都在使用过程式编程语言的时候很少地去使用代码流控制的机制去编写(有些过程式编程语言中几乎已消失),但是它们还是很有用的。这也是一个新的强大的想法让解决一些特定的情况下的问题变得更容易。If表达式在Kotlin中一切都是表达式,也就是说一切都返回一个值。如果if条件不含有一个exc...转载 2018-06-21 14:52:28 · 465 阅读 · 0 评论 -
kotlin学习(九)
从数据库中保存或查询数据前面一个章节中我们讲了关于SQLiteOpenHelper的创建,但是我们需要在必要的时候有方法去保存我们的数据到数据库,或者从我们的数据库中查询数据。另外一个叫ForecastDb类就会做这件事。创建数据库model类但是首先,我们要去为数据库创建model类。你还记得我们之前所见的map委托的方式?我们要把这些属性直接映射到数据库中,反过来也一样。我们先来看下CityF...转载 2018-06-21 14:50:44 · 599 阅读 · 0 评论 -
kotlin学习(八)
集合和函数操作符在我们这个项目我们已经使用过集合了,但是现在是时候展示它们结合函数操作符之后有多强大了。关于函数式编程很不错的一点是我们不用去解释我们怎么去做,而是直接说我想做什么。比如,如果我想去过滤一个list,不用去创建一个list,遍历这个list的每一项,然后如果满足一定的条件则放到一个新的集合中,而是直接食用filer函数并指明我想用的过滤器。用这种方式,我们可以节省大量的代码。虽然我...转载 2018-06-21 14:49:04 · 170 阅读 · 0 评论 -
kotlin学习(七)
Application单例化和属性的Delegated我们很快要去实现一个数据库,如果我们想要保持我们代码的简洁性和层次性(而不是把所有代码添加到Activity中),我们就要需要有一个更简单的访问application context的方式。Applicaton单例化按照我们在Java中一样创建一个单例最简单的方式:class App : Application() { companio...转载 2018-06-21 14:46:46 · 273 阅读 · 0 评论 -
kotlin学习(六)
LambdasLambda表达式是一种很简单的方法,去定义一个匿名函数。Lambda是非常有用的,因为它们避免我们去写一些包含了某些函数的抽象类或者接口,然后在类中去实现它们。在Kotlin,我们把一个函数作为另一个函数的参数。简化setOnClickListener()我们用Android中非常典型的例子去解释它是怎么工作的:View.setOnClickListener()方法。如果我们想用J...转载 2018-06-21 14:44:07 · 310 阅读 · 0 评论 -
kotlin学习(五)
构建domain层我们现在创建一个新的包作为domain层。这一层中会包含一些Commands的实现来为app执行任务。首先,必须要定义一个Command:public interface Command<T> { fun execute(): T}这个command会执行一个操作并且返回某种类型的对象,这个类型可以通过范型被指定。你需要知道一个有趣的概念,一切kotlin...转载 2018-06-21 14:40:19 · 310 阅读 · 0 评论 -
kotlin学习(四)
在主线程以外执行请求如你所知,HTTP请求不被允许在主线程中执行,否则它会抛出异常。这是因为阻塞住UI线程是一个非常差的体验。Android中通用的做法是使用AsyncTask,但是这些类是非常丑陋的,并且使用它们无任何副作用地实现功能也是非常困难的。如果你使用不小心,AsyncTasks会非常危险,因为当运行到postExecute时,如果Activity已经被销毁了,这里就会崩溃。Anko提供...转载 2018-06-21 14:38:17 · 288 阅读 · 0 评论 -
kotlin学习(三)
Anko是什么?Anko是JetBrains开发的一个强大的库。它主要的目的是用来替代以前XML的方式来使用代码生成UI布局。这是一个很有趣的特性,我推荐你可以尝试下,但是我在这个项目中暂时不使用它。对于我(可能是由于多年的UI绘制经验)来说使用XML更容易一些,但是你会喜欢那种方式的。然而,这个不是我们能在这个库中得到的唯一一个功能。Anko包含了很多的非常有帮助的函数和属性来避免让你写很多的模...转载 2018-06-21 14:36:14 · 288 阅读 · 0 评论 -
kotlin学习(二)
aa转载 2018-06-11 16:18:32 · 160 阅读 · 0 评论 -
kotlin学习(一)
怎么定义一个类如果你想定义一个类,你只需要使用class关键字。class MainActivity{}它有一个默认唯一的构造器。我们会在以后的课程中学习在特殊的情况下创建其它额外的构造器,但是请记住大部分情况下你只需要这个默认的构造器。你只需要在类名后面写上它的参数。如果这个类没有任何内容可以省略大括号:class Person(name: String, surname: String)...转载 2018-06-11 16:15:14 · 187 阅读 · 0 评论