Kotlin中国 为您找到相关结果 203

Android基础-Fragment的使用

初学Android时,我们都知道Activity,也知道Activity是怎么使用的。Activity的含义就是活动,一个界面,简而言之,放在App应用上来说,一个Activity就相当于是App中的一个界面。 但是今天我们学的是Fragment,可能初学Android的,可能不知道Fragment是什么,但是不急,我们在这里会详细的讲解。 1.Fragment是什么? Fragment翻译过来就是碎片,片段,其实它是一种可以嵌入活动(Activity)的UI片段,它能让程序使用屏幕资源,使得一个屏幕充分的展现内容。Fragment是从Android 3.0(API 11)加入的,主要是为了给大屏幕(如平板电脑)上更加动态和灵活的 UI 设计提供支持。由于平板电脑的屏幕比手机屏幕大得多,因此...阅读全文

博文 2017-10-26 00:00:46 Stay-Hungry-Stay-Foolish

Android——通过Intent,Bundle在activity间进行数据传递

在安卓activity的数据传递中,Intent和bundle都是用的极多的传递参数的工具。本文就讲介绍Intent与Bundle并简述如何进行参数传递。 1.Intent是什么 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。 2.Bundle是什么 Bundle...阅读全文

为什么不使用 RxLifecycle?

本文为翻译文章,原文连接:为什么不使用RxLifecycleWhy Not RxLifecycle? Hello. This is Dan Lew. You may or may not know me as the author of RxLifecycle.hello,我是Dan Lew,你可能还不知道我就是RxLifecycle.的作者。OriginsWhen Trello first started using RxJava, we were dismayed with how easy it was to leak memory when using it. Seemingly any Subscription you setup would leak unless you exp...阅读全文

博文 2017-09-15 15:03:50 woitaylor

Android开发中ListView与EditText的冲突汇总

在安卓开发的过程中,遇到了listview碰见item中有edittext嵌套的问题,刚开始讨论的时候感觉这还不是很简单的事,实际操作中遇到了各式各样的问题 点击EditText弹出软键盘导致EditText焦点丢失和文本重置问题 问题描述:点击EditText,弹出软键盘,会导致ListView调用getView()重绘,从而导致本来应该在EditText上的焦点被刷新而消失了,从而在软键盘上输入任何文字都没有显示没有效果,必须再点击一次EditText才会有焦点,并且无论输入什么内容隐藏软键盘后再次由于重绘又变回原来的文本内容。 解决方案 定义一个整型变量来标志点击的是哪个EditText: private int index = -1; 在getView中为EditText添加onTo...阅读全文

博文 2017-09-07 11:02:44 邮币财富-张起荣

js解析多层嵌套的json,取出所有父元素属性和遍历所有子元素

已知一个多层嵌套的json,取出所有父元素和子元素的id值 思路:因为不知道到底嵌套了多少层,递归有可能造成栈溢出、查询时间特别久的问题 所以先查询一次,判断是否有子节点,如果有,取出子节点并到父节点上,并动态更改数据长度,这样无限循环处理json取出所有id menuIdInit () { var _this = this; var _menu = _this.menus; var menuId = []; var len = _menu.length; for(var i = 0; i < len; i++){ var item = _menu[i] ; if(item.child && item.child.length != 0){ var child = item.child ; ...阅读全文

博文 2017-09-09 00:00:31 calamus

Android : SELinux 简析&使用

一 SELinux背景知识 1. DAC和MAC: SELinux出现之前,Linux上的安全模型叫DAC,全称是Discretionary Access Control,翻译为自主访问控制。DAC的核心思想很简单,就是: 进程理论上所拥有的权限与执行它的用户的权限相同。比如,以root用户启动Browser,那么Browser就有root用户的权限,在Linux系统上能干任何事情。 显然,DAC太过宽松了,所以各路高手想方设法都要在Android系统上搞到root权限。那么SELinux如何解决这个问题呢?原来,它在DAC之外,设计了一个新的安全模型,叫MAC(Mandatory Access Control),翻译为强制访问控制。MAC的处世哲学非常简单:即任何进程想在SELinux系统...阅读全文

博文 2017-09-13 19:00:31 blogs-of-lxl

android MVVM开发框架——(3)DataBinding 应用于RecyclerView

android MVVM开发框架——(1)DataBinding 基础应用 android MVVM开发框架——(2)DataBinding 应用于ListView 如果你对mvvm或者databinding不太熟悉的,建议先去看看前两篇博文 1,item布局沿用上一篇listview的布局,这里就不贴出来了 2,recyclervice布局 阅读全文

博文 2017-11-01 11:01:37 yehui928186846

在Kotlin的数据类(data)中使用@Bindable

Kotlin中的数据data类是类似与Java中的数据模型,本身并不是观察者模式。如果要实现观察者模式就要使用BaseObservable(这是java的使用模式,不知kotlin是否有更好的模式,如果有还请留言告知,谢谢),代码实现如下面的代码: package com.jaleke.kotlintest import android.databinding.BaseObservable import android.databinding.Bindable /** * Created by ln on 17-9-19. */ data class TestModel(var id: String = "") : BaseObservable() { @Bindable var name ...阅读全文

博文 2017-09-19 12:02:14 guangchun

android 读写文件

一、 从resource中的raw文件夹中获取文件并读取数据(资源文件只能读不能写) String res = ""; try{ InputStream in = getResources().openRawResource(R.raw.bbi); //在\Test\res\raw\bbi.txt, int length = in.available(); byte [] buffer = new byte[length]; in.read(buffer); //res = EncodingUtils.getString(buffer, "UTF-8"); //res = EncodingUtils.getString(buffer, "UNICODE"); res = EncodingUt...阅读全文

博文 2017-10-18 12:02:46 落叶残风卷

Android BLE蓝牙详细解读

前言 码个蛋支持投稿了,让我们一起分享,共同成长,分享使我们在编程的道路上不再孤独。 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环、心率检测仪、以及各式各样的智能家具和玩具类产品。安卓4.3(API 18)为BLE的核心功能提供平台支持和API,App可以利用它来发现设备、查询服务和读写特性。相比传统的蓝牙,BLE更显著的特点是低功耗。本文主要讲解Android低功耗蓝牙的api使用以及蓝牙扫描、连接、发送数据、接收数据等一系列操作,并主要介绍本人封装的BleLib蓝牙库,非常适合蓝牙初学者使用,只需要一行代码注入就OK了,而且用法也极其简单,下面会专门讲解BleLib库的使用。 目录 原生API的详细讲解 BleLib库的优点 如何使用该库 BleLib库的详细分...阅读全文

博文 2017-09-15 10:02:44 微笑的江豚

Swift 4 新功能详解 《What's New in Swift》

简介:Swift 4来袭,这次升级来说好的很多,大部分都是介于Swift 3的基础上附加的,基本语法是没有什么大的变化的.想想Swift2-Swift3的变化,那一段蛋疼的时间.Swift 4的这次更新,真的爽太多了Swift 4需要安装Xcode 9--->下载链接 Xcode 9同时支持Swift 3\Swift 4,你的项目中的Target可以是Swift 3.2或Swift 4,当想迁移到Swift 4时,你可以通过Edit/Convert/To Current Swift Syntax…来打开转换工具。新特性:1.开区间 SE-0172带来 种新的RangeExpression协议和 组前缀/后缀操作符给开区间.比如现在区间论是上界还是下界都可以不指定Swift 3的写法-----...阅读全文

ObjectBox 笔记

EventBus 和 GreenDao 的老东家 GreenRobot 推出的移动端数据库架构。 优点: 速度快,号称比目前主流数据库架构快 5-15 倍 NoSql,没有 rows、columns、SQL,是完全面向对象的 API 数据库升级做到完全自动 缺点是目前仍没有发布正式版本,目前版本号为 V.0.9.13(beta),不过感觉也快了,最新版本甚至增加了 Kotlin 的支持。 简单使用 依赖 根目录下 build.gradle : buildscript { repositories { jcenter() maven { url "http://objectbox.net/beta-repo/" } } dependencies { classpath 'com.android...阅读全文

博文 2017-07-20 19:03:50 chauOne

Kotlin实战pdf

下载地址:网盘下载 《Kotlin 实战》将从语言的基本特性开始,逐渐覆盖其更多的高级特性,尤其注重讲解如何将 Koltin 集成到已有 Java 工程实践及其背后的原理。本书分为两个部分。第一部分讲解如何开始使用 Kotlin 现有的库和API,包括基本语法、扩展函数和扩展属性、数据类和伴生对象、lambda 表达式,以及数据类型系统(着重讲解了可空性和集合的概念)。第二部分教你如何使用 Kotlin 构建自己的 API,以及一些深层次特性——约定和委托属性、高阶函数、泛型、注解和反射,以及领域特定语言的构建。《Kotlin 实战》适合广大移动开发者及入门学习者,尤其是紧跟主流趋势的前沿探索者。 下载地址:网盘下...阅读全文

博文 2018-07-18 19:00:02 cf3276625841

Koltin Any 类型

Koltin Any 类型 kotlin.Any The root of the Kotlin class hierarchy. Every Kotlin class has Any as a superclass. Kotlin compiler treats kotlin.Any and java.lang.Object as two different types, but in runtime they are represented with the samejava.lang.Objectclass. javaClass property returns the runtime class of an instance, so that's why you get the sam...阅读全文

博文 2017-06-12 00:02:04 华夏商周秦汉唐宋元明清中华民国

Kotlin学习笔记(三十八)匿名内部类

/** * 匿名内部类 * 1.kotlin中的匿名内部类可以用 object:接口名或类名 的形式实现 * 2.匿名内部类可以继承一个类,实现多个接口 * 3.匿名内部类并不是真的没有名字,在编译的时候会有其对应的id,可通过反射获取 */ interface OnClickListener { //点击监听器接口 fun onClick() //点击事件 } class View { //视图类 var onClickListener: OnClickListener? = null } open class Appear fun main(args: Array) { val view = View() //新建一个视图 view.onClickListener = o...阅读全文

Android应用开发SharedPreferences…

SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键值对)SharedPreferences常用来存储一些轻量级的数据. 代码如下: //实例化SharedPreferences对象(第一步) SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); //实例化SharedPreferences.Editor对象(第二步) SharedPreferences.Editor editor = mySharedPreferences.edit(); //用putStrin...阅读全文

博文 2017-06-23 09:02:44 leansmall

《Android构建MVVM》系列(一) 之 MVVM架构快速入门

前言 本文属于《Android构建MVVM》系列开篇,共六个篇章,详见目录树。 该系列文章旨在为Android的开发者入门MVVM架构,掌握其基本开发模式。 辅以讲解Android Architecture Components,使得更好的实现MVVM架构。 目录树 《Android构建MVVM》系列(一) 之 MVVM架构快速入门 前言 分层思想 什么是MVC/MVP? MVVM是什么,与MVC/MVP有何区别? Android Architecture Components(架构组件) 一个MVVM的Demo 结语 《Android构建MVVM》系列(二) 之 架构组件LiveData 《Android构建MVVM》系列(三) 之 架构组件ViewModel 《Android构建MVVM...阅读全文

Kotlin Koans学习笔记(2)

这是Kotlin Koans学习笔记的第二部分,上一篇在这里。 第二部分一共12个任务,都是关于Kotlin集合操作。 13.Introduction Kotlin提供了一系列的to方法将一个集合类型转换成另外一个集合类型。 这一部分的第一个任务很简单,根据提示就可以完成,关于任务就不必多说。 先说明一下第二部分所有任务的数据模型。这一部分所有的任务都是围绕一个商店(Shop)展开,商店有一个客户(Customer)列表。 客户具有姓名、城市和订单(Order)列表三个属性。 订单具有商品(Product)列表和是否已经发货两个属性。 商品具有名称和价格两个属性。 data class Shop(val name: String, val customers: List)...阅读全文

博文 2017-05-23 14:30:20 唐先僧

Kotlin从入门到放弃<一>

Kotlin作为JetBrains开发的一门新语言,所以我们还是从语言上来学习它,用的IDE是JetBrains开发的IDEA. 1. 数据类型 Boolean Number(Byte Short Int Long Double Float) Char在kotlin中不再区分基本数据类型和装箱数据类型,在需要的时候编译器会自动帮我们选择 1.1 Boolean val b1 : Boolean = true val b2 : Boolean = false 1.2 Number 浮点型 Double 64位宽 Float 32位宽 字节 Byte 8位宽 整型 Short 16位宽 Int 32位宽 Long 64位宽 val anInt: Int = 8 val anotherInt: I...阅读全文

博文 2017-06-14 10:03:11 東方月初

Android RxJava2 浅析

文地址:http://blog.csdn.net/maplejaw_/article/details/52442065 Observable 在RxJava1.x中,最熟悉的莫过于Observable这个类了,笔者刚使用RxJava2.x时,创建一个Observable后,顿时是懵逼的。因为我们熟悉的Subscriber居然没影了,取而代之的是ObservableEmitter,俗称发射器。此外,由于没有了Subscriber的踪影,我们创建观察者时需使用Observer。而Observer也不是我们熟悉的那个Observer,其回调的Disposable参数更是让人摸不到头脑。 废话不多说,从会用开始,还记得使用RxJava的三部曲吗? 第一步:初始化一个Observable Observ...阅读全文

博文 2018-01-10 16:00:47 zhujiabin

android中的适配器(ArrayAdapter,SimpleAdapter,BaseAdapter)

ArrayAdpter ArrayAdapter通常用于将数组或List集合的多个值包装成多个列表项 ArrayAdapter adapter2 = new ArrayAdapter(context, resource, textViewResourceId, objects) T是数组的类型,resource至少包括一个View的布局文件 textViewResourceId指的是textView的id号,如果没有该参数代表使用系统android.R.id.text1 Objects是数据源,String[] arr ArrayAdapter有六种构造方法,如果只是搭配简单的视图,一般使用下面这种构造方法。 常用构造方法: public ArrayAdapter(Context conte...阅读全文

博文 2017-12-02 18:01:44 Dr_abandon

Kotlin入门之基本数据类型

基本数据类型 在kotlin中,一切皆对象,对于一个变量,我们可以调用它的任何成员函数和属性。某些数据类型是语言内建的,它们的实现都做了优化,但使用起来跟一般的类没有任何区别。本小节将讲解它们中的大部分,例如:numbser, characters, booleans和arrays。 数字(Numbers) Kotlin中处理数字的方式和Java很像,但不完全一样。例如:不能显式的向上扩展数字;字面常量在某些情况下稍微不同。 Kotlin提供以下内建类型表示数字(这与Java很相似): Type Bit Width Double 64 Float 32 Long 64 int 32 Short 16 Byte 8 注意:在Kotlin中字符(charactors)不是数字。 字面常量 下面是...阅读全文

博文 2017-05-27 15:14:24 I二师兄I

android获取网络图片

/** * 获取网络图片资源 * @param url * @return */ public static Bitmap getHttpBitmap(String url){ URL myFileURL; Bitmap bitmap=null; try{ myFileURL = new URL(url); //获得连接 HttpURLConnection conn=(HttpURLConnection)myFileURL.openConnection(); //设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制 conn.setConnectTimeout(6000); //连接设置获得数据流 conn.setDoInput(true); //...阅读全文

博文 2017-06-23 20:02:40 快乐之星IT

Java & Groovy & Scala & Kotlin - 05.数据类型

Overview 本节主要介绍一下四门语言的数据类型 Java 篇 Java 的数据类型主要分为基本数据类型和引用数据类型 基本类型 Java 的基本类型有 int, long, float, double, char, boolean,即以小写字母开头的数据类型。 例 int x = 2; float y = 0.1f; boolean flag = false; 引用数据类型 Java 中除基本数据类型之外的所有数据都属于引用数据类型,并且所有引用数据类型都是 Object 类的子类。 BigDecimal Java 的基本数值类型及其包装类在进行浮点操作时,很有可能会损失精度。为此,Java 引进了 BigDecimal 类,可以在不损失精度的情况下进行计算。但是不幸的是 Java 的...阅读全文

博文 2017-05-27 15:12:17 bookislife

Kotlin学习之-4.3 基础类型

4.3 基础类型 Kotlin中,所有都是对象是因为我们可以调用任何对象的成员函数和属性。有一些类型是内建的,因为这些类型的实现是优化过的,但是使用的时候看起来和普通类是一样的。本节中我们将介绍这些类型:数据类型,字符类型,布尔类型和数组。(number, character, boolean 和array) 数据类型 numbers Kotlin中处理数据类型和Java方法很类似,但也不完全一样。例如,没有隐式地扩展数据类型字长,还有写法上也稍有不同。 Kotlin提供下面这些内置的数据类型来表示数字,这和Java很接近。 Type Bit width Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 注意字符类型不在数据类型中。 字符常量...阅读全文

博文 2017-06-14 02:00:31 farmer_cc

Android系统篇之----免root实现Hook系统服务拦截方法

技术概念来源:[ 360开源插件框架,项目地址:https://github.com/DroidPluginTeam/DroidPlugin ] 一、Binder机制回顾 在之前一篇文章中介绍了 Android中的Binder机制和系统远程服务调用机制,本文将继续借助上一篇的内容来实现Hook系统服务拦截指定方法的逻辑,了解了上一篇文章之后,知道系统的服务其实都是一个远程Binder对象,而这个对象都是由ServiceManager大管家管理的,用户在使用系统服务的时候,会通过指定服务的Stub方法的asInterface把远程的Binder对象转化成本地化对象即可使用,而在这个过程中,我们也知道因为系统服务是在system_server进程中的,所以这个系统服务使用过程中属于跨进程调用,那...阅读全文

博文 2017-06-24 16:02:55 我爱睡觉

Kotlin Reference (三) Basic Types, String, Array and Imports

KotLin 相关文档 官方在线Reference kotlin-docs.pdf Kotlin for android Developers 中文翻译 Kotlin开发工具集成,相关平台支持指南 Kotlin开源项目与Libraries Kotlin开源项目、资源、书籍及课程搜索平台 Google’s sample projects written in Kotlin 基本数据类型 Kotlin中支持的基本数据类型及它所占Bit宽度: Type Bit width Double 64 Float 32 Long 64 Int 32 Short 16 Byte 8 Char 在kotlin中 并不是一个数值类型 kotlin不支持8进制, 支持 2、10、16进制 下面的代码,示例了: 关于...阅读全文

博文 2017-06-01 19:00:31 jjwwmlp456

Kotlin教程学习-数据类型

一切都是对象. 在Kotlin中一切都是对象.Kotlin有一些基本类型Boolean,Byte,Shot,Int,Long,Float,Double 在Kotlin中没有原始类型,以上这些类型都是对象,比如 运行结果如下 Kotlin支持16进制字面值,二进制字面值和科学记数法,官方文档中没有提到8进制 所有基本的几个数据类型不会进行显式类型转换,这一点尤为重要!那么如何进行转换呢?如下: 可以使用toLong,toInt,toShort,toChar等函数进行转换,不仅如此,数组Array<>也是对象,不但可以通过asList函数转换为List对象,数组类甚至包含了一个用于计算平均值的average函数.实际上Kotlin数组真的很像Collection(虽然Array并没有实现Coll...阅读全文

博文 2017-05-23 11:43:39 天命剑主

android ble 蓝牙4.0 cc2540 开发(一)

1、概述 公司做了两个蓝牙4.0的app项目,对于蓝牙4.0 ble的理解也从阅读官方的代码,各种代码到有自己的见解。 很多手机早前就有蓝牙4.0,但是android官方是在sdk 4.3以上才开始支持蓝牙4.0 一般app开发的现在都建议用户自行升级到android系统到4.3以上 才能使用开发的app。早前三星,摩托罗拉,lg,博通是有提供自己的蓝牙库的,因为大家使用的库不能统一,所以现在 开发ble app 一般是直接要求sdk4.3以上,用官方库开发。 2、demo 官方demo参见 :就不用找来找去了,装了该装的更新包,新建个工程,选择Android Sample Project, 在4.0以上的sdk里选择历程BluetoothLeGatt 这个工程就是官方的蓝牙ble demo...阅读全文

博文 2017-09-09 23:02:39 净琉璃

Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL

之前介绍了一些Web层的例子,包括构建RESTful API、使用Thymeleaf模板引擎渲染Web视图,但是这些内容还不足以构建一个动态的应用。通常我们做App也好,做Web应用也好,都需要内容,而内容通常存储于各种类型的数据库,服务端在接收到访问请求之后需要访问数据库获取并处理成展现给用户使用的数据形式。 本文介绍在Spring Boot基础下配置数据源和通过JdbcTemplate编写数据访问的示例。 数据源配置 在我们访问数据库的时候,需要先配置一个数据源,下面分别介绍一下几种不同的数据库配置方式。 首先,为了连接数据库需要引入jdbc支持,在build.gradle中引入如下配置: compile "org.springframework.boot:spring-boot-sta...阅读全文

博文 2018-01-22 10:02:08 quanke_

比较两个数字

Kotlin 中没有基础数据类型,只有封装的数字类型,你每定义的一个变量,其实 Kotlin 帮你封装了一个对象,这样可以保证不会出现空指针。数字类型也一样,所有在比较两个数字的时候,就有比较数据大小和比较两个对象是否相同的区别了。 在 Kotlin 中,三个等号 === 表示比较对象地址,两个 == 表示比较两个值大小。 fun main(args: Array) { val a: Int = 10000 println(a === a) // true,值相等,对象地址相等 //经过了装箱,创建了两个不同的对象 val boxedA: Int? = a val anotherBoxedA: Int? = a //虽然经过了装箱,但是值是相等的,都是10000 printl...阅读全文

博文 2017-09-22 14:03:44 十旋转45度

Android网络通讯基础(Socket和HTTP)

应用软件的网络通信无非就是Socket和HTTP,其中Socket又可以用TCP和UDP,HTTP的话就衍生出很多方式,基础的HTTP GET和POST请求,然后就是WebService的SOAP。 在这些方式中,Socket当然是最基础的。因此先从Socket开始。 服务端就不需要过多的说明了,无论采用什么语言什么平台都可以,只要遵循基本的Socket监听模式就行。 首先是说说TCP开发 JAVA里的TCP开发感觉比C#里简单多了,实现方法几句话就能完成。 Socket socket = new Socket("192.168.3.119",7628);//创建Socket实例,并绑定连接远端IP地址和端口 OutputStream ops = socket.getOutputStream...阅读全文

博文 2017-08-28 11:02:48 王欢瑜

android ------- TCP与UDP

TCP TCP(Transmission Control Protocol,传输控制协议) 即传输控制协议,是一种传输层通信协议 特点:面向连接、面向字节流、全双工通信、可靠 面向连接:指的是要使用TCP传输数据,必须先建立TCP连接,传输完成后释放连接,就像打电话一样必须先拨号建立一条连接,打完后挂机释放连接。 全双工通信:即一旦建立了TCP连接,通信双方可以在任何时候都能发送数据。 可靠的:指的是通过TCP连接传送的数据,无差错,不丢失,不重复,并且按序到达。 面向字节流:流,指的是流入到进程或从进程流出的字符序列。简单来说,虽然有时候要传输的数据流太大,TCP报文长度有限制,不能一次传输完,要把它分为好几个数据块,但是由于可靠性保证,接收方可以按顺序接收数据块然后重新组成分块之前的数据...阅读全文

博文 2018-04-21 09:02:36 切切歆语

Kotlin智能类型转换

fun main(args: Array) { // 定义一个 Student 类型的 person val person : Person = Student() // 如果 person 属于 Student 类 if (person is Student){ // person 智能转换成 Student类 print(person.getName()) } val per : Person = Person() val stu : Student ?= per as Student // per强转成Student 失败返回null } // 定义一个父类 open class Person(){ } // 定义一个子类 class Student : Person(...阅读全文

博文 2017-07-13 18:03:45 Puck的双刀

Kotlin编码窍门之类型检查与类型转换(Type Checks and Casts)

is和!is操作符 我们可以通过is操作符和!is操作符来检查一个对象是否是目标类型: if (obj is String) { print(obj.length) } if (obj !is String) { // same as !(obj is String) print("Not a String") } else { print(obj.length) } 职能转换(Smart Casts) 许多情况下,Kotlin是不用使用强制类型转换操作的,因为编译器会跟踪不可变值的is检查操作,并会在需要的时候自动插入(安全的)类型转换操作: fun demo(x: Any) { if (x is String) { print(x.length) // x is automaticall...阅读全文

博文 2017-06-03 11:02:11 谁耳

Kotlin入门指南(3)

在Java里,我们常常要进行许多非空判断: public void fun1 (String str){ if(str != null) { System.out.println("Length = " + str.length()); } } 而在Kotlin中,即使不进行这些额外的判断,代码也是健壮的: // 如果str=null,会打印:Length = null fun fun1 (str: String?) { println("Length = " + str?.length) } 还有,Java中经常出现的ClassCastException,在Kotlin中,也可以通过安全的类型转换进行避免: 不是Int类型的将输出null val l2 = listOf("A",1,3,6...阅读全文

使用Kotlin开发Android之扩展函数

本文翻译自 Amit Shekhar 的文章,收录于 Android 前沿 专题,Android 前沿是一个翻译和总结国外技术论坛上最新 Android 技术和趋势的专题,每周至少更新5篇高质量文章,欢迎订阅、投稿。 扩展函数 -什么是扩展函数? 从字面上理解,扩展函数是一种可以在不修改类本身的代码的情况下就可以对类的功能进行扩展的函数。 或者说,Kotlin 中的扩展函数可以让我们以添加新函数的方式对类的功能进行扩展。这个类既不必须是属于我们的(比如第三方库中的类),又不需要我们去继承它。 -不需要继承就能扩展一个类? -是的,在Kotlin中这是完全可行的!扩展函数的用法: //给 Int 类型定义一个乘方的扩展函数 fun Int.triple():Int{ return this*3...阅读全文

博文 2017-06-13 23:02:19 ZacharyWang

Bug Fixed--Android N Data Call Retry 时间间隔不能有效增加

0. 相关文档链接 Android N Data Call流程(准备中...) 1. 关键术语 Data call:移动通讯的业务种类分语音业务和数据业务,数据业务包含除移动通讯CS域语音业务外的其他业务,以数据传输和信息交互为技术的移动通讯业务,所有的数据业务必须在data call建立的基础上才可以实施; APN:(Access Point Name,接入点)一种网络接入技术,是手机上网时必须配置的一个参数,它决定了手机通过哪种接入方式来访问网络。APN的完整说明在3GPP规范TS23.003 Clause 9中进行了详细定义; PDN:(Public Data Network,公用数据网)一种由电信运营商组建的广域网,提供接入广域网的服务与技术,为用户提供高质量数据传输服务; DcTr...阅读全文

博文 2018-02-25 11:02:36 遇逆境-处之泰然

Android 无线调试

Android studio 插件--ADB WIFI 安装 settings->plugins->Browse repositories 搜索框输入ADB WIFI找到插件,安装,重启android Studio后可以看到 导航菜单下Tools->Android->ADB WIFI就算安装成功了。 使用 第一步:首先还是需要用数据线连接电脑,如下图: 第二步:找到ADB WIFI菜单,如下图: 第三步:运行ADB Restart(Ctrl+Alt+Shift+R) 第四步:运行ADB USB to WIFI(Ctrl+Alt+Shift+W) 第五步:最后拔掉数据线。 打开LogCat,看看有没有闪动的日志信息,如果有就是成功了...阅读全文

博文 2017-07-08 10:02:44 你不懂的神__经

Kotlin编码窍门之区间(Ranges)

区间表达式由rangeTo函数和..操作符辅以in和!in构成。可以为任意可比较的类型定义区间,但是对于整形这种原生类型,区间的实现已经被优化了。如下是一个使用区间的例子: if (i in 1..10) { // equivalent of 1 <= i && i <= 10 println(i) } 整形区间(IntRange, LongRange, CharRange)有一个额外特性:它们可以被迭代。编译器负责将其转换为类似Java的基于索引的for循环而无额外开销。 for (i in 1..4) print(i) // prints "1234" for (i in 4..1) print(i) // prints nothing 如果你想倒序迭代数字呢?也肯简单,可以使用标准库中...阅读全文

博文 2017-06-03 11:02:11 谁耳

Kotlin——最详细的数据类型介绍

任意一种开发语言都有其数据类型,并且数据类型对于一门开发语言来说是最基本的构成,同时也是最基础的语法。当然,kotlin也不例外。kotlin的数据类型和Java是大致相同的,但是他们的写法不同,并且类型之间的转换也存在着差异。下面为大家详细说明并举例。 目录 一、数值类型 1、Kotlin中的数字的内置类型(接近与Java),其关键字为: Byte => 字节 => 8位 Short => 短整型 => 16位 Int => 整型 => 32位 Long => 长整型 => 64位 Float => 浮点型 => 32位 Double => 双精度浮点型 => 64位 例: var a: Byte = 2 var b: Short = 2 var c: Int = 2 var d: Lon...阅读全文

博文 2017-10-25 12:00:20 Jetictors

Android 经典笔记之五:DownloadManager下载管理器介绍

DownloadManager下载管理器介绍 目录介绍: 0.简单介绍 1.所需权限 2.获取对象,开始下载 3.取消下载 4.Request类的介绍 4.5.指定下载的类型 4.6.定制Notification样式 4.7.设置下载文件类型 4.8.添加请求下载的网络链接的http头,比如User-Agent,gzip压缩等 5.Query 类 6.不足之处 7.代码案例【简易】 0.简单介绍 关于DownloadManager简单介绍 DownloadManager是android2.3以后,系统下载的方法,是处理长期运行的HTTP下载的系统服务。客户端可以请求的URI被下载到一个特定的目标文件。客户端将会在后台与http交互进行下载,或者在下载失败,或者连接改变,重新启动系统后重新下载...阅读全文

博文 2017-09-13 19:02:50 潇湘剑雨

Swift 4新功能-1

Swift4中更新的大致内容如下: 1.开区间 2.字符串 3.同文件内的扩展, 私有声明可见 4.智能Key path 5.编码和解码 6.协议相关类型的约束 7.字典(Dictionary)和集合(Set)的增强 8.MutableCollection.swapAt 方法 9.reduce 和 inout 10.泛型下标 11.NSNumber 桥接 12.类和协议的组合 以下是具体的介绍: 一、开区间 带来一种新的 RangeExpression 协议和一组前缀/后缀操作符给开区间. 比如现在区间无论是上界还是下界都可以不指定. 1.无限序列 你可以用开区间来造一个无限序列, 对长期使用 enumerated() 方法的同学来说,这是一个福音,尤其是当你不想序号从0开始的时候: let...阅读全文

博文 2017-09-05 16:03:48 qtds8810

Kotlin基础之函数

普通函数 fun name(str : String) : String { }fun 函数名(参数名 : 参数类型) : 返回类型 { }通常未加任何修饰词的函数是public的,你也可以给前面加上private 无返回值 fun name(str : String) : Unit { }Unit相当于java中的void 函数默认值 private fun name(str: String, it : Int = 2): Unit{ } 这时it就有一个默认的值为2,你可以这样调用name(s)也可以name(s,5)那么5就会覆盖默认值2,这个很好。可以少写很多相似的方法 通过参数直接返回值 fun name(it1: Int, it2 : Int): Int = it1+it2这应该...阅读全文

博文 2017-05-30 19:02:08 EasonDev

Kotlin学习笔记和知识点(一)

1.用val或var声明变量,指明它们是不可变的或可变的 //定义函数 fun getVar():String{ return "var" } //赋值 val x =1 var s= getVar() 2.基本数据类型 //Boolean val aBoolear: Boolean=true val anotherBoolear: Boolean=false //Int val anInt: Int =8 val anotherInt: Int =0xFF val moreInt: Int =0b00000011 val maxInt : Int=Int.MAX_VALUE val minInt: Int=Int.MIN_VALUE //Float 浮点 val aFloat: Float...阅读全文

博文 2017-06-16 10:02:27 看一季残花落幕

Kotlin从0到1——Java<>Kotlin数据类型映射表

子类型映射表: Java数据类型 Kotlin数据类型 byte kotlin.Byte short kotlin.Short int kotlin.Int long kotlin.Long char kotlin.Char float kotlin.Float double kotlin.Double boolean kotlin.Boolean 原子包装类型映射表(以?结尾的类型,表示该值可以是 空(null)值): Java数据类型 Kotlin数据类型 java.lang.Byte kotlin.Byte? java.lang.Short kotlin.Short? java.lang.Integer kotlin.Int? java.lang.Long kotlin.Long? j...阅读全文

博文 2017-07-04 11:03:53 亲亲娆娆

Kotlin秘籍之类型转换

之前的内容: Kotlin秘籍之变量 Kotlin秘籍之基本类型 在java中,低精度向高精度转化是自动转换的,而高精度向低精度转化是强制转换的 image 而在Kotlin中,不能进行类型的自动转换,这一点是和java不同的 Java代码 int a = 100 ; long b = a ; Java代码中,int类型的a会自动转换为long类型并分配给b,代码编译通过 Kotlin代码 var a: Int = 100 var b: Long = a //type mismatch Kotlin代码中,即使Long类型的范围大于Int类型,但是a不会自动Long类型,因此,你只能显示的去转换,你可以通过一下方式实现 var a: Int = 100 var b: Long = a.toL...阅读全文

博文 2017-08-22 21:03:54 ChicoChen

【kotlin】实现基于OKhttp的通用网路引擎的封装

使用例子: val url = "https://www.baidu.com" NetUtils.getHttp(url, null, object : NewCallBack { override fun onFail(err: String) { Log.e("onFail", err) } override fun onSuccess(t: String) { Log.e("onSuccess", t.toString()) } }) 使用范围:联网请求 返回结果 String , Bitmap , 自定义类型 实现1:引入OKhttp的依赖库(这里的例子是Android Studio 3.0 Beta2的引入) 在APP层的build.gradle文件中,depend...阅读全文

博文 2017-08-12 13:03:47 _别_爱_