Kotlin标准方法with,run,apply AND 静态方法
标准函数with,run,apply123456789101112131415161718192021222324252627282930313233343536373839404142fun main() { //常用写法 val list = listOf("apple", "banana", "orange", "pear", "grape") val builder = StringBuilder() builder.append("Start eat fruits\n") for (fruit in list) { builder.append(fruit + "\n") } builder.append("Ate all fruits\n") println(builder) //使用with作为标准函数来写 ...
Activity最佳实践
知晓当前时哪一个activity直接创建一个kotlin的类,,他与Activity的创建方法不一样。创建BaseActivity类 12345678open class BaseActivity:AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Log.d("BaseActivity",javaClass.simpleName) //javaClass表示获取当前实例的class对象,相当于在java中调用getClass方法 //::class.java表示获取BaseActivity类的Class对象。相当于在Java中调用BaseActivity.class反射 ActivityCollector.addActivity(this) ...
Activity启动模式
...
Activity被回收
一般情况下,只有activity被销毁后才hi被回收。可是,当系统内存不足时,他会将处于停止状态的activity也回收了。如果停止状态的activity没被回收,那么再次启动时,将会执行onRestart()方法,然后恢复数据,但是如果被回收后,他会执行onCreate()方法,也就导致,如果这个activity有文本输入框的话,这些数据都会直接消失。 因此为了解决这个问题,Activity提供了一个onSaveInstanceState()回调方法。他在回收前一点会调用该方法。该方法需要一个Bundle参数,也可以用put之类的保存键值对参数。如下代码: 12345override fun onSaveInstanceState(outState: Bundle){ super.onSaveInstanceState(outState) val tempData = "Something you just...
Activity生命周期
...
Activity的跳转
activity的销毁只要调用finish()方法即可销毁activity。 Intentintent是Android程序中各组件之间进行交互的一种重要方式,不仅可以指定当前组件要执行的动作,也可以在不同组件传递数据。 activity的跳转 显式跳转,直接确定跳转的类,然后进行跳转 隐式跳转,设定好被跳转activity的响应事件和类别,然后通过触发对应的intent和category进行跳转。 显示跳转Intent有很多构造参数,这里我们选用一个Intent(Context packageContext,Class<?> cls)第一个参数需要一个启动的上下文,而我们的Activity实例就是一个context。第二个参数就是要跳转的目的类(他需要接受一个java的类)例如:123456button1.setOnClickListenner{ val intent =...
Activity更替(视图绑定)
kotin已经是google官宣的第一android开发语言。在android开发中,经常需要在activity中去获取某个具体的View属性,一般可以通过findViewById(R.id.button1)的方法来获取View,从而实现具体的逻辑变化。 但是一直使用findViewById()非常不利于代码的整洁性和可观性,因此可以采用视图绑定的方法来简化操作。 在原先的kotlin开发中,他可以通过插件apply plugin: 'kotlin-android-extensions'已经被弃用来实现简单的视图绑定。现在这个插件已经被废除,需要使用其他方法 视图绑定在app目录下的build.gradle配置文件中填入一下内容 1android { ... viewBinding { enabled = true } } 然后就可以便携的在activity中使用视图绑定 123456789override fun onCreate(savedInstanceState: Bundle?) { ...
Activity的使用(1)
Activity的概念他是一种可以包含用户组界面的组件。他就是一个app的门面,所有可见的内容都是在activity中定义的。 相关配置每个Activity都需要绑定一个布局文件layout以及必须在AndroidManifest注册。 在layout布局文件中,每个元素都应该有一个唯一的id作为标识符。例如:1<Button...
Android入门(0)
IDEA是一款非常强大的编译器,而且大家常用的AndroidStudio就是基于IDEA开发出来的,因此无论是使用Android Studion还是IDEA都会非常的熟练,他们的快捷键等都几乎保持一致。因此无论是使用idea或者android studio都没有问题。这里我选择使用idea。就不多再下载一个编译器了。使用过程 首先需要安装android SDK他会要求你进行下载,当你下载完成后,你就可以使用idea开发android了 如果是旧UI的话,就可以在开发Android时自己选择模拟的设备了,如图而如果更换了新UI就不会显示这个,你需要通过更多工具获得选择这些工具后,他们就会出现在右栏或者底栏,就可以方便的使用了。 logcat的使用最重要的是他的筛选工具,他可以筛选log的等级,和包名
NVM的安装和使用
#nvm node:是一个基于 Chrome V8 引擎的 JS 运行环境。 npm:是 node.js 默认的包管理系统(用 JavaScript 编写的),在安装的 node 的时候,npm 也会跟着一起安装,管理 node 中的第三方插件。 npx:npm 从 v5.2.0 开始新增了 npx 命令,>= 该版本会自动安装 npx,附带:npx 有什么作用跟意义?为什么要有 npx?什么场景使用?。 nrm:是一个 npm 源管理工具,使用它可以快速切换 npm 源,默认是官方源,当 npm 下载包过慢时,可能需要切换到第三方源(例如:淘宝、科大…),还有公司私有源地址等等。 nvm:node 版本管理器,也就是说:一个 nvm 可以管理多个 node 版本(包含 npm 与 npx),可以方便快捷的 安装、切换 不同版本的 node。 安装nvm的安装只需要执行以下一条命令linux下 1curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh |...