首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Kotlin中的常用类及其使用

一、构造函数和初始化块 1.初始化块 2.主构造函数 3.次构造函数 4.他们之间的联系 二、属性 1.属性的声明 2.避免递归调用的幕后字段 三、常用的类 一、构造函数和初始化块 1.初始化块 代码的初始化工作由它负责...2.主构造函数 主构造函数只能由一个,初始化块相当于放在主构造函数的无参函数中,按顺序执行初始化块,这一点和传统的面向对象编程中的主构造函数没有太大的区别。...由关键字constructor提供,一般情况省略此关键字 class MyClass (name:String){ } //或者使用关键字 class MyClass constructor...(name:String){ } 3.次构造函数 同样使用constructor关键字作为函数名,但它不能省略函数名,使用时需要调用主构造函数 class MyClass constructor...和getter,所以不用这么担心 三、常用的类 抽象类 含有抽象方法的类称为抽象类,这一点和java里面很像 内部类 使用inner关键字,可以访问内部类外的属性 class outer{ val

1.1K20

第14章 使用Kotlin 进行 Android 开发(1)第14章 使用Kotlin 进行 Android 开发(1)

本章将带领大家快速入门使用 Kotlin 进行 Android 应用程序的开发。...Android Studio 3.0是第一个支持 Kotlin 语言的里程碑式版本(在此之前,可以使用Android Studio 的 Kotlin 插件的方式)。...使用 Kotlin 开发 Android 大大减少了我们的样板代码。...另外,它还生成一个本地视图缓存,当第一次使用属性时,它将执行一个常规的findViewById。但在下一次使用属性的时候,视图将从缓存中恢复,因此访问速度将更快。...当Fragment被detach后,执行attach操作,会让Fragment从onCreateView开始执行,一直执行到onResume。attach无法像add一样单独使用,单独使用会抛异常。

2.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kotlin Vocabulary | 使用 Kotlin 中的扩展提升代码可读性

    Java 编程语言通常使用 Utils 类来解决此类问题,但这样的方式并不支持代码自动补全,会让写出的代码比较难以查找,使用起来也不直观。...通过它,您无需使用继承,或创建接收类实例的函数即可为某个类添加功能。同 Java 这类编程语言不同,Android Studio 的自动补全功能是支持 Kotlin 扩展的。...在函数体中,您可以使用 this 来引用接收者对象,在该函数作用域内能够访问到接收者所属类的全部成员对象。 中的扩展函数,而您所得到的唯一信息是您所定义的扩展函数变成了一个未被使用的方法。...工作原理 我们可以在 Android Studio 中对 printDogInformation() 反编译,方法是在 Tools/Kotlin/Show Kotlin Bytecode 中点击 Decompile

    1.3K10

    Android数据库高手秘籍(十),如何在Kotlin中更好地使用LitePal

    一次不可思议的升级 从上述文章中我们都可以看出,Kotlin版的代码普遍都是比Java代码要更简约的,Google给出的官方统计是,使用Kotlin开发可以减少大约25%以上的代码。...比如使用Java查询song表中id为1的这条记录是这样写的: Song song = LitePal.find(Song.class, 1); 而同样的功能在Kotlin中却需要这样写: val song...这样的话也就不存在什么泛型擦除的问题了,因为Kotlin在编译之后会直接使用实参替代内联方法中泛型部分的代码。 简单点来说,就是Kotlin是允许将内联方法中的泛型进行实化的。...T.class这样的语法在Java中是不可能的,而在Kotlin中借助泛型实化功能就可以使用T::class.java这样的语法了。...而通过刚才泛型实化部分的讲解,我们知道Kotlin中是可以使用T::class.java这样的语法的,因此我在LitePal 3.0.0中扩展了这部分特性,允许通过指定泛型来声明查询哪张表中的内容。

    3.1K30

    《Kotin 极简教程》第13章 使用 Kotlin 和 Anko 的Android 开发

    onClick监听函数中,因为我们是使用 Kotlin代码来设计视图,所以可以直接使用title变量(editText视图对象)。...13.3 快速入门实例 下面我们通过一个“我的日程”待办事项应用,来详细介绍使用 Kotlin 混合 Java,使用 Anko 开发的Android 应用的方法。...在构建脚本中添加kotlin-gradle-plugin依赖,使用 Kotlin 对应的版本号。...也就是说,如果我们上面添加了KotterKnife的依赖,那么 Java 代码中同时使用 Butter Knife 注解的地方会绑定失败。不过这个问题,在后面的新版本中已经解决。...,我们在TodosFragment中的 onResume() 函数中来实现数据的更新展示: override fun onResume() { super.onResume()

    3.6K30

    Android Jetpack架构组件(二)之Lifecycle

    在Android开发中,解藕很大程度上表现为系统组件的生命周期与普通组件之间的解藕,因为普通组件在使用过程中需要依赖系统组件的的生命周期。...简单的理解就是,当Activity/Fragment的生命周期产生变化时,Lifecycle组件会感应相应的生命周期变化,当然我们还可以通过使用Lifecycle组件来在自定义的类中管理Activity...Lifecycle:是一个持有组件生命周期状态与事件(如Activity或Fragment)的信息的类。...Fragment和FragmentActivity类实现了LifecycleOwner接口,它具有访问生命周期的getLifecycle方法,使用时需要在自己的类中实现LifecycleOwner。...二、 Lifecycle使用 使用Lifecycle进行应用开发之前,需要先在app的build.gradle文件中添加如下依赖代码。

    1.3K00

    安卓的组件

    生命周期管理: Activity 有一套完整的生命周期方法(如 onCreate、onStart、onResume、onPause、onStop、onDestroy),帮助开发者管理应用的状态和资源。...生命周期管理: Service 有一套生命周期方法(如 onStartCommand、onBind、onDestroy),帮助管理服务的启动、运行和销毁。...处理广播: 在 onReceive 方法中处理接收到的广播消息。 静态和动态注册: 可以在 AndroidManifest.xml 中静态注册,也可以在代码中动态注册广播接收器。...核心功能 数据共享: ContentProvider 提供了一种标准的方式来跨应用程序访问数据。 URI 访问: 使用统一资源标识符(URI)来指定要访问的数据。...理解和掌握这些组件的工作原理是成为一名合格的Android开发者的关键。 在《第一行代码——Android》中,这些组件都有详细的讲解和实战示例,帮助你更好地理解和应用这些核心概念。

    8810

    唠唠 Activity 的生命周期

    这个问题在下面的 onResume 一节中会详细说明,读者可以先仔细揣摩一下。 onStart() 方法中可以做些什么呢?...如果你的 Activity 持有的是相机等系统资源,会导致其他应用无法使用该资源,对用户来说无疑是很不友好的。所以,在进行类似操作的时候要考虑一下应用场景。...) { super.onRestoreInstanceState(savedInstanceState) } 在 Kotlin 中重写这两个方法也可以看到,onCreate() 方法的参数是可空的...其实更好的做法是使用 ViewModel ,它可以在系统配置变化发生的 Activity 重建过程中来保存数据。 最后来说一下 onSaveInstanceState 的调用时机问题。...,onStart,onDestroy Visible Process : 有 Activity 可见,但不在前台 Service 正在运行前台服务 持有一些用户可以感知的特定服务,如动态壁纸,输入法服务

    38620

    Android:检查通知权限并跳转到通知设置界面

    initClickListener() } override fun onResume() { super.onResume() checkPushSwitchStatus...如: implementation 'com.android.support:appcompat-v7:27.1.1' B: 部分国产手机中没有APP通知设置页面 在部分国产手机系统中,Settings.ACTIONAPPLICATIONDETAILS_SETTINGS...C: 部分国产手机 APP通知设置界面中没有开启和关闭的操作 部分国产手机中 Settings.ACTIONAPPLICATIONDETAILSSETTINGS对应的Activity并不是我们期望的通知设置界面...而且,在小米6中 Settings.ACTIONAPPLICATIONDETAILS_SETTINGS 对应的应用信息界面中,点击其中的 通知管理 之后跳转的也是上面图中的样子。...地址 文中代码分别对应下列仓库中的:b34checkNotify、b34pushcheck Java版: https://github.com/CnPeng/CnPengAndroid.git Kotlin

    7.4K30

    浅试Android开发

    Android是由Google主导开发的一个基于Linux内核的开源操作系统,专为移动设备设计,如智能手机、平板电脑和智能穿戴设备。...Android的架构包括应用层、应用框架、库和Linux内核,允许开发者使用Java、Kotlin等编程语言创建应用。...中间有个配置页,默认使用Kotlin语言,编写简单demo的话可以什么都不改,我Project Name更改为了Demo。Finish之后弹出工作区页面完成空白项目创建。...活动的生命周期由系统管理,开发者可以通过重写生命周期方法(如onCreate、onStart、onResume、onPause、onStop和onDestroy)来处理活动的创建、显示、隐藏和销毁等状态...在这个文件中,使用了Jetpack Compose,这是Android的现代UI工具包,允许开发者使用Kotlin代码构建用户界面,而不是传统的XML布局。

    9520

    【愚公系列】《AIGC辅助软件开发》012-AI辅助客户端编程:AI辅助 Android 应用开发

    如何在 Android 应用中创建注册界面? 在 Android 应用中创建注册界面涉及设计用户界面 (UI) 和编写处理用户输入的代码。以下是详细步骤: ### 步骤 1:设置项目 1....你可以使用正则表达式在 Kotlin 中编写一个函数,来从输入字符串中删除所有的 `` 和 `` 标签。...你可以将这个函数转换为 Kotlin 中的扩展函数,这样你可以直接在 `String` 对象上调用它。...尽管这不是错误,但在 Kotlin 中,通常建议遵循驼峰命名法(CamelCase),因此建议使用 `removeBoldTags`。 3....**生命周期**: - `Activity` 的生命周期由系统管理,包括方法如 `onCreate()`、`onStart()`、`onResume()`、`onPause()`、`onStop(

    12600

    Android Ble蓝牙App(一)扫描

    至于为什么使用Kotlin,稳固一下,不然太久不用就会生疏,文本我们讲述的是扫描,你可能回想,一个扫描有什么好写,不就是开始、结束、显示设备嘛?至于单独作为一个功能来写一篇文章嘛?...); setContentView(binding.root) } }   在Java中封装通常采用反射的方式,在Kotlin中如果要对ViewBinding进行封装的话同时利用上...Kotlin的一些特性的话,可以这样做,原文地址如下:Viewbinding使用和委托封装,感觉写得蛮好的,太久没用Kotlin了,还是看了一会才看懂,感兴趣的可以看看。   ...") } 这里使用了Activity Result API,需要注意的是它们是与onCreate()函数平级的,下面修改onClick()函数中的代码: override fun...ScanActivity中还有最后一个修改的地方,那就是在onResume()函数中增加开始扫描的代码,代码如下所示: override fun onResume() { ...

    1.2K60

    「Android」四大组件,你真的都掌握了?

    = null //不报错 可是有的时候,我并不想声明一个类型可空的对象,而且我也没办法在对象一声明的时候就为它初始化,那么这时就需要用到Kotlin提供的延迟初始化。...Kotlin中有两种延迟初始化的方式。 一种是lateinit var,一种是by lazy。...并且,它会事先将应用程序要使用的 android Fromework 中的类和资源加载到内存中,并组织形成所用资源的链接信息。...新运行的 android 应用程序在使用所需要的资源时不必每次重新形成资源的链接信息,这样提高程序运行速度。 在 android 中,使用Zygote进程的目的?...,如 List 和 Map,内部的 insert、delete、update、query 方法需要处理好线程同步,因为这几个方法是在 Binder 线程池中被调用的。

    1.1K40
    领券