2020
10-09
10-09
Kotlin作用域函数之间的区别和使用场景详解
作用域函数Kotlin的作用域函数有五种:let、run、with、apply以及also。这些函数基本上做了同样的事情:在一个对象上执行一个代码块。下面是作用域函数的典型用法:valadam=Person("Adam").apply{age=20city="London"}println(adam)如果不使用apply来实现,每次给新创建的对象属性赋值时就必须重复其名称。valadam=Person("Adam")adam.age=20adam.city="London"println(adam)作用域函数没有引入任何新的技术...
继续阅读 >
什么是sam转换SingleAbstractMethod实际上这是java8中提出的概念,你就把他理解为是一个方法的接口的就可以了看一下我们每天都在使用的线程池ExecutorServiceexecutorService=Executors.newScheduledThreadPool(3);executorService.execute(newRunnable(){@Overridepublicvoidrun(){System.out.println("helloworld");}});用下面的java8中的lambda来写也是可以的。xecutorService.execute(()->Sy...
在activity级下使用this表示contextkotlin中取消了xxxActivity.this的用法,所以我们可以在activity下新建一个Context属性——instance指向它本身。然后在其他地方使用。如果使用的地方是在activity这一级则可以直接使用this指向它本身overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_share_temp)share_imgbtn.setOnClickListener(this...
开发环境androidstudio3.0.1已支持kotlin1、定义接口interfaceCallBack{funcallBack(info:String)}2、实现接口:为继承\实现classCallBacks:CallBack{overridefuncallBack(info:String){Log.d("MainApp","currentinfo$info")}}或者privatevarmCallBack=object:CallBack{overridefuncallBack(info:String){Log.d("MainApp","currentinfo$info")}}3、定义带回调方法的函数privatefuninit...
java中自定义回调事件的写法创建interface类,创建interface对象,实现set方法:使用:kotlin中自定义点击事件写法依照java的思想(不推荐)创建interface类,创建interface可变对象(var)使用:利用kotlin函数作为参数(强烈推荐)来看一下系统的点击事件在kotlin中是什么样的:是不是简直简洁到不像话?再看看你自己定义的点击事件回调,感觉跟还在用java开发一样…下面就来看个新的写法:创建一个函数对象,在需...
界面中控件较多的话,每个控件都设置setOnClickListener(this)是很麻烦的,为此抽出了一个Context的扩展类:funContext.setViewClick(listener:View.OnClickListener,varargviews:View){for(itinviews){it.setOnClickListener(listener)}}即只需要将Activity或Fragment实现View.OnClickListener接口,然后调用上面的方法,第一个参数传this即可,后面将要设置点击事件的控件传入,然后在界面中覆写onClick(v:V...
在kotlin中可以不用使用findViewById来初始化控件,但是在给EditText赋值时使用editText.text="value"时会提示Typemismatch,这是因为EditText在推断types时出现问题。为了避免types不匹配,使用Editable类的Factory内部类,来解决这个问题。etStartTime.text=Editable.Factory.getInstance().newEditable("test")补充知识:kotlinTextView、EditText的相关监听的常用使用kotlinTextView、EditText的相关点击监听、长按监听...
更新了AS3.1.2之后,发现新建Kotlin类,类注释依然木有,没办法只有自己动手了。方法很简单,编辑FileHeader就可以啦。只需要编辑自己想要的模板就可以啦。/***@Author${USER}*@Date${DATE}-${TIME}*@EmailchrisSpringSmell@gmail.com*/支持的动态命令不多,只有一些简单的命令。新建类效果:补充知识:AndroidStudiojavadoc生成注释文档相信大家刚开始写代码的时候就被前辈告知了要养成写注释的好习惯,今天我们来了解...
想必大家都知道androidstudio的livetemplates功能,那真是各种方便,比如你想使用newInstance去生成一个类的实例:简直不要太方便!当今kotlin流行起来了,你在使用kotlin开发android的时候,是不是发现以前用的logt、loge、newinstance…,这些快捷创建代码片段的方式都不能用了,没关系,来一起自定义吧年轻人~打开androidstudio>>File>>Settings,搜索“livetemplates”:来看看我们之前在java代码里用...
Kotlin是一门JVM语言,它被google大力推广,现如今已经是Android官方推荐的开发语言了。为了更好的学习Kotlin,你必须要从字节码的角度来看待语法特点,这样可以更好的加深自己的理解。这篇文章就是教大家如何通过Androidstudio来查看Kotlin编译后的字节码。1、首先选中你要显示字节码的文件,之后点击顶部工具栏中的Tools->选中Kotlin->在弹出菜单中点击ShowKotlinBytecode。2、点击之后在Androidstudio最右侧的工具栏上...
问题现象前段时间升级AndroidStudio3.1.3+版本后,决定尝试使用Kotlin做APP开发看看。结果却发现,修改String资源后,“运行”,修改的内容没有生效。一开始以为只是String资源是这样,于是试了下kt文件,结果发现“运行”也不能生效。但是先clean了,再“运行”,却可以正常编译出来。查了好久发现是NewModule后,Run/DebugConfigurations不完整所致。解决方法1、点击“运行”按钮旁边的下拉按钮,然后点击Ed...