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

android 的 ExpandableListView Example Tutorial

https://www.journaldev.com/9942/android-expandablelistview-example-tutorial Welcome to Android ExpandableListView Example Tutorial. In this tutorial we’ll implement an ExpandableListView which is used to group list data by categories. It’s sort of menu and submenus in a Android ListView. Android ExpandableListView Android ExpandableListView is a vi...阅读全文

博文 2017-10-17 22:00:32 welhzh

Android读写properties配置文件

写这篇文章之前可以成功运行,文章后就各种找不到文件.所以并没有采用此种方式,后期完善.详见下篇解决方案. 配置文件读取很容易,修改需要注意权限,比如assets目录下就不允许修改. 配置文件的创建: New --- File 命名后选择properties方式打开 配置文件设置 contrastIP = 192.166.1.65:8011 assets目录创建 在main目录下,与java res 目录同级创建. New --- Folder --- Assets Folder assets目录详解: http://blog.csdn.net/chuntiandejiaobu10/article/details/52352128 权限配置 在 AndroidManifest.xml 中添加:...阅读全文

博文 2017-10-17 22:00:32 haoxr

IntelliJ IDEA启动spring boot项目出现Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]

IntelliJ IDEA启动spring boot项目出现Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].TomcatEmbeddedContext[]] 出现的错误日志见后面的附加信息; 学习了:http://blog.csdn.net/lanmo555/article/details/51435534 发现大概是servlet-api的问题,而且在日志中发现了 启动jar包中包含D:\Java\JetBrains\IntelliJIDEA\lib\servlet-api.jar; 该项目在sts中可以正确启动,应该是IntelliJ IDEA设置的问题; 而且该项目mvn install...阅读全文

博文 2018-01-06 00:00:01 stono

Android Gradle高级用法,动态编译技术:Plugin Transform Javassist操作Class文件

动态编译技术在开源框架中的应用非常的广泛,现在市面上的插件化框架,热修复框架几乎都使用了动态编译技术,原理几乎都是在编译期间动态的在class文件中注入代码或者或修改。那就让我们来了解一下这高大上的技术吧。 本章会以完成一个demo的形式来揭开动态编译的神秘面纱,将会分成三步 一、自定义Gradle插件 二、介绍Transform API 及 实现步骤 三、实现在编译的过程中操作.class文件,对原有代码或者说逻辑进 行一些处理,修改原class代码和动态生成java类 一、自定义gradle插件:在我们app下的build.gradle中的第一行是apply plugin: ‘com.android.application’ ,其实这就是一个插件,是google写好的插件,我们自己写插一...阅读全文

博文 2017-09-18 10:02:48 微笑的江豚

Android unique_id for android device

Objective: I am looking for a way to find out a unique_id for android device. Background: I will use the Id in login request payload and as my app is license based service app the Id should not change under normal circumstances. Existing Approaches: In iOS there are some unique id solutions for iOS such as CFUUID or identifierForVendor coupled with...阅读全文

博文 2017-07-14 15:03:17 当空皓月

如何利用 Anko 扩展 RecyclerView 或 Custom View

前言 Anko 作为 jetbrain 同时推出的辅助 kotlin 的神兵利器,可以使用 DSL 语言来快速的完成 android 布局。 从此可以完全抛弃 xml了。anko 默认扩展了LinearLayout(verticalLayout,没有 horizontalLayout,可以使用 orientation 来定义),relativeLayout 等, 但对于 RecyclerView 或者 自定义的 View 没有支持。 所以想要在代码中使用他们,就需要 anko extension,这里简单的扩展一下 RecyclerView 1.添加依赖 compile 'com.android.support:recyclerview-v7:$support_version' // Ank...阅读全文

博文 2017-08-10 11:03:47 关内侯和他的五百勇士

Android在项目中接入腾讯TBS浏览器WebView的教程与注意的地方

腾讯TBS浏览器服务 我们都知道,在Android开发中,经常会用到Webview,而且WebView是出了名的坑的,各种bug。这时候腾讯老哥站出来了,搞了一个TBS浏览器服务这个东西。 说得这么屌,其实就是一个webView控件,然后解析解析网页的内核是他自己做的,叫X5内核(系统原生的WebView用的是WebKit内核),所以我们开发者用的时候,主要就是用这个com.tencent.smtt.sdk.WebView控件 当然这个控件有很多功能,当然也有些要注意的地方。 官网地址:http://x5.tencent.com 1. 特殊功能: 速度快:相比系统webview的网页打开速度有30+%的提升; 省流量:使用云端优化技术使流量节省20+%; 更安全:安全问题可以在24小时内修复...阅读全文

博文 2018-01-20 12:01:35 niubitianping

Kotlin学习(十八): 委托模式(Delegate)和委托属性(Delegate Properties)

委托模式已经被证明是实现继承的一个很好的替代方式,在扩展一个基类并且重写方法时,基类就必须依赖子类的实现,当不断地修改的时候,基类就会失去当初的性质,Kotlin中就将类默认为final,确保不会被修改。 有一种模式是装饰器模式,本质就是创建一个新类,实现与基类一样的接口,并且将类的实现作为一个字段保存,这样就能在基类不被修改就能直接修改基类的实例。但是这样的缺点是会造成很多的样板代码。 class DelegatingCollection : Collection { private val innerList = mutableListOf() override val size: Int get() = innerList.size override fun cont...阅读全文

博文 2017-11-27 10:01:22 u011976726

Android BLE Kotlin 笔记

BLE 与经典蓝牙的区别 BLE 的 Kotlin 下实践 经典蓝牙(Classic Bluetooth)& 低功耗蓝牙(Bluetooth Low Energy) 经典蓝牙可以用与数据量比较大的传输,如语音,音乐,较高数据量传输等。 BLE 特点就如其名,功耗更低的同时,对数据包做出了限制。所以适用于实时性要求比较高,但是数据速率比较低的产品,如鼠标,键盘,传感设备的数据发送等。 蓝牙 4.0 支持单模和双模两种部署方式,其中单模即是我们说的 BLE,而双模指的是 Classic Bluetooth + BLE 。实际上,BLE 和经典蓝牙的使用等各方面都像是没有关联的两个东西,甚至因为 BLE 的通讯机制不同,所以是不能向下兼容的;经典蓝牙则可以兼容到蓝牙 3.0 / 2.1。 经典蓝牙...阅读全文

博文 2017-05-27 15:25:27 SoftXJ

Android广播机制

1.Android广播机制概述 Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。广播作为Android组件间的通信方式,能够使用的场景例如以下: 1.同一app内部的同一组件内的消息通信(单个或多个线程之间)。 2.同一app内部的不同组件之间的消息通信(单个进程); 3.同一app具有多个进程的不同组件之间的消息通信; 4.不同app之间的组件之间消息通信; 5.Android系统在特定情况下与App之间的消息通信。 从实现原理看上,Android中的广播使用了观察者模式。基于消息的公布/订阅事件模型。因此,从实现的角度来看,Android中的广播将广播的发送者和接受者极大程度上解耦,使得系统能够方便集...阅读全文

博文 2017-07-01 15:00:33 jhcelue

Android OkHttp3 https双向认证

参考博客:关于Okhttp3 https双向验证实现代码 参考博客:关于使用OKHttp调试自签名证书进行双向认证的一些看法 被误导的博客:Android 客户端 okhttp3 与服务器之间的双向验证 被误导的博客:Android Https相关完全解析 当OkHttp遇到Https package com.zyp.driot.dianxin.utils.Constant; import android.content.Context; import android.os.Handler; import com.orhanobut.logger.Logger; import com.zyp.driot.R; import com.zyp.driot.dianxin.cert.TrustAl...阅读全文

博文 2018-01-20 08:00:32 bmbh

kotlin Context使用

在activity级下使用this表示context 在内部类里面是用外部类的实例对象表示context 使用kotlin的标签语法从内部类使用外部类的实例表示context 在activity级下使用this表示context kotlin中取消了xxxActivity.this的用法,所以我们可以在activity下新建一个Context属性——instance指向它本身。然后在其他地方使用。如果使用的地方是在activity这一级则可以直接使用this指向它本身 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.a...阅读全文

博文 2017-06-30 22:01:06 damnivictory

我的Kotlin 学习之路(六)Kotlin之coroutines 框架的使用

Coroutine -> 协程不同于线程,协程不占用CPU,它只占用内存来处理耗时操作。Coroutine的原理有大牛的视频已经介绍了,我就不搬门弄斧了,这一章主要讲讲Kotlinx.coroutines 这个库的使用方法,有关于这个的中文讲解还不是很多! 我们依旧使用官方文档中加载google天气的例子来代替耗时操作 一、导入框架compile 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.16' 二、Request类 /** * 网络请求类 * Created by zr on 2017/5/23. */ class Request (val url:String){ fun run():String{ Log.e(javaClass....阅读全文

博文 2017-06-27 14:04:02 活着工作室

Android 获取地理位置信息 封装好了 直接用

前言:花了一个早上研究了以下android获取经纬度,然后网上的参考资料都是杂七杂八,基本上都是过去几年的,现在我用 android6.0参照别人的结果发生好多错误,我的内心几乎是崩溃的。后来,不断百度,不断goole,不断查找资料,终于解决了,而且完美打包,以后直接用就可以了。 1.这个类原来是用kotlin写的,后来有些东西和java又不同,索性就改成java吧,反正他们兼容性很强-----封装的类名为:LocationUtil package com.example.jason_jan.guangdamiao.Util; import android.content.Context; import android.content.pm.PackageManager; import an...阅读全文

博文 2017-07-20 09:00:02 Jason-Jan

新创建项目报ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context

使用Spring官网提供的工具创建了一个SpringBoot,使用的语言是Kotlin,结果直接运行main,报下面的错误。 ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context Configuration problem: @Configuration class 'Demo1Application' may not be fina...阅读全文

博文 2017-06-26 14:03:49 道哥的博客

android视频压缩

项目中需要上传视频,自然就需要压缩视频了,然后就去百度,google,结果都是基于 FFmpeg,自己也集成了 FFmpeg看看效果,结果大失所望,应用多了二十兆,压缩一个10秒50多兆的视频用了将近1分钟,以为自己集成有问题,然后又是百度和问一些大牛,都说确实存在这样的问题,压缩效率很低。然后就放弃了 FFmpeg。最后试过阿里的,没找到压缩放弃了,又有人说七牛短视频,下载了demo试了下感觉不错,看到它有一个转码功能实现了压缩,集成测试了下确实很不错,这里写出来让需要的同学少走点弯路。(我弄了一周多,一边开发别的功能,一边寻找压缩视频的方法) 使用七牛短视频里面的转码功能,先去下载sdk; demoApk下载(自己将官方demo打了一个包):链接:点击打开链接 密码: rxkx 官网链接...阅读全文

博文 2018-01-24 20:01:31 qq_31796651

Android ijkplayer的使用解析

ijkplayer是Bilibili基于ffmpeg开发并开源的轻量级视频播放器,支持播放本地网络视频,也支持流媒体播放。支持Android&iOS。 导包 ijkplayer导包源码下载https://github.com/lmx-fashion/IjikPlayer 我们需要的只有widget.media和libs 然后进行配置就好了 修改APP下的build.gradle, 主要设置.so及.aar的位置: apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "25.0.0" defaultConfig { applicationId "com.hx.ijkpl...阅读全文

博文 2017-11-25 20:01:46 inter_native

kotlin 之 接口回调

有如下常用情景,在某个Adapter我们设置自己的接口回调,将原来的java代码改写之后大概会是这个样子: class SomeListAdapter(){ var mOnItemClickListener:OnItemClickListener? = null fun setOnItemClickListener(onItemClickListener : OnItemClickListener){ mOnItemClickListener = onItemClickListener } override fun onBindViewHolder(holder: RecyclerView.ViewHolder?, position: Int) { mOnItemClickListener?...阅读全文

博文 2017-11-02 12:02:13 街角的小丑

RecyclerView之Header和Footer的添加

一,添加Header和Footer 在Adapter中新添加一些int值,用于区分添加Header,Footer,还是都没有添加 val TYPE_FOOTER = 1//添加Footer val TYPE_HEADER = 2//添加Header val TYPE_NORMAL = 0//两者都没有添加 在Adapter中新暴漏两个方法,用于设置Header和Footer fun setHeaderView(hv: View){ headerView = hv notifyItemInserted(0) } fun setFooterView(fv: View){ footerView = fv notifyItemInserted(itemCount - 1) } 根据是否添加了Head...阅读全文

博文 2017-06-27 16:04:31 小和尚恋红尘

Android - Android Architecture Components - Room 在 Kotlin 中使用 (1)

参考文章 Android Room 官方文档 Room Persistence Library(官网文档翻译) 在kotlin中使用room(Room Persistence Library)和遇到的坑 Android官方ORM框架ROOM(Google I/O 2017) 啰嗦 对 Room 不了解的可以看上面文章就可以了,我就不做过多赘述。每个例子都有一个环境或场景,好吧,场景如下: 描述 用户拥有哪些书 User 字段 说明 u_id 序号 u_name 姓名 u_phone 电话 u_create_date 创建日期 u_update_date 更新日期 u_status 状态 Book 字段 说明 b_id 序号 b_name 书名 b_author 作者 b_copyright ...阅读全文

博文 2017-08-17 05:01:01 LABLENET

Android判断当前界面是否在launcher,及获取应用包名入口Activity

Launcher都有一个CATEGORY_HOME属性,可以根据这个属性筛选Launcher Intent intent = new Intent(Intent.ACTION_MAIN, null); intent.addCategory(Intent.CATEGORY_HOME); List packageInfos = getPackageManager().queryIntentActivities(intent, 0); for (int i = 0; i < packageInfos.size(); i++) { String launcherActivityName = packageInfos.get(i).activityInfo.name; Str...阅读全文

博文 2017-09-14 21:02:47 Ace-Wu

android广播监控wifi连接状态

package com.example.floatdialogtest; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.NetworkInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; public class WifiReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Int...阅读全文

博文 2017-06-30 17:02:45 净琉璃

Android O 发送通知的方法(Kotlin)

谷歌的samples:https://github.com/googlesamples/android-NotificationChannels 昨晚把模拟器升级到Android O以后发现原来写的APP通知显示不出来了,前台服务也变成后台服务了,百度了一圈什么都没找到就去看了下Google的开发文档,从文档里得知NotificationCompat.Builder(context:Context)在Android O中将不再能显示出通知来,需要更换为Notification.Builder(context:Context,channelId:String)才能正常显示。 注:channelId的值需要自己声明,根据samples得知有PRIMARY_CHANNEL和SECONDARY_CH...阅读全文

博文 2017-09-17 19:03:46 交响诗篇

Android 自定义AlertDialog

在实际的项目开发当中,经常需要根据实际的需求来自定义AlertDialog。最近在开发一个WIFI连接的功能,点击WIFI需要弹出自定义密码输入框。在此权当记录 效果图 点击首页的Button即跳出对话框,显示WIFI信息(TextView),密码输入框(EditText),取消和连接按钮(Button) 实现 根据自己实际的需求,为AlertDialog创建一个布局,在此我需要定义一个如图所示的WIFI密码输入框,故在 res/layout 目录下建立一个 dialog_layout.xml 文件。 在该布局中,定义一个TextView显示wifi名称,一条分割线,一个EditText用于密码输入,以及两个Button用于取消与连接 阅读全文

博文 2017-09-17 10:00:32 AaronPasi

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

React Native Android原生模块使用(获取Android手机通讯录的数据)

使用React Native开发App时会遇到需要用到一些Android原生模块,比如:访问相册、通讯录、日历等等。下面主要是以获取Android手机通讯录的数据为例,讲解React Native Android原生模块的使用。 注:数据格式可自行做修改。 React Native Android原生模块的主要流程 在这里我将构建React Native Android原生模块的流程划分为两大步: 1.编写Android原生模块的相关Java代码; 2.注册与导出React Native原生模块 编写Android原生模块的相关Java代码 我们需要用到Android Studio。 首先我们用Android Studio打开React Native项目根目录下的android目录。项目初始...阅读全文

博文 2017-06-19 19:02:54 djonce

Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决

一个比较长的界面一般都是Scrollview嵌套RecyclerView来解决.不过这样的UI并不是我们开发人员想看到的,实际上嵌套之后.因为Scrollview和RecyclerView都是滑动控件.会有一点滑动上的冲突.导致滑动起来有些卡顿.这个时候.我们重写一下LayoutManager就行了 例如: [java] view plain copy LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false) { @Override public boolean canScrollVertically() { ret...阅读全文

博文 2017-09-11 14:00:30 xgjblog

Android热修复:Andfix和Hotfix,两种方案的比较与实现

Andfix和hotfix是两种android热修复框架。 android的热修复技术我看的最早的应该是QQ空间团队的解决方案,后来真正需要了,才仔细调查,现在的方案中,阿里有两种Dexposed和Andfix框架,由于前一种不支持5.0以上android系统,所以阿里系的方案我们就看Andfix就好。Hotfix框架算是对上文提到的QQ空间团队理论实现。本文旨在写实现方案,捎带原理。 Andfix 引入 框架官网:https://github.com/alibaba/AndFix 介绍是用英文写的,所以附上翻译网址: http://blog.csdn.net/qxs965266509/article/details/49802429 使用android studio开发,引入如下: com...阅读全文

博文 2017-09-15 17:02:49 恒源祥

Kotlin 协程 coroutines

前言 首先,如果要玩协程,协程项目的地址肯定是要知道的https://github.com/Kotlin/kotlinx.coroutines kotlin并没有将协程加入标准库中,而是放在了额外的组件库中,如果想要使用协程,那么上面地址当然是必须要的。 正文 第一个协程 fun coroutinesTest(){ launch { // launch new coroutine in background and continue delay(1000L) // non-blocking delay for 1 second (default time unit is ms) Log.d("sss","World!") // print after delay } Log.d("sss",...阅读全文

博文 2018-01-25 16:02:08 街角的小丑

Android 文件读写存储

应用私有存储文件的写入与读取 - openFileInput 和 openFileOutput 应用私有存储文件: /data/data//files/目录下 应用删除时,即清空该目录。 //通过context对象获取私有目录:/data/data/packagename/filescontext.getFileDir().getPath() Context对象中文操作的API及说明 方法名 说明 openFileInput(String filename) 打开应用程序私有目录下的的指定私有文件以读入数据,返回一个FileInputStream 对象 openFileOutput(String filename, 操作模式) 打开应用程序私有目录下的的指定私有文...阅读全文

博文 2018-01-19 11:00:32 CharlesGrant

深入理解Glide

Glide是一个快速高效的Android图片加载库,注重于平滑的滚动。Glide提供了易用的API,高性能、可扩展的图片解码管道(decode pipeline),以及自动的资源池技术。 目前,Glide的最新版本为4.2.0,本文是基于4.1.1这个版本来分析的,同属4.x,变化不大。 基本用法 多数情况下,使用Glide加载图片非常简单,一行代码足矣: Glide.with(fragment) .load(myUrl) .into(imageView); 取消加载同样很简单: Glide.with(fragment).clear(imageView); asBitmap() //指定加载静态图片,如果是gif则加载第一帧。 asGif() //如果是非gif,则加载失败。 asXxx()...阅读全文

博文 2017-10-28 13:04:53 jiantao88

Getting Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference

<p>Hi. Right now i try to start a Service which get the Values of the Accelerometer in the background. Sadly the app always crashes with the ErrorMessage in the Title. Can anyone say me where the Error is?From the Error i assume it have something to do with the context but it worked in Java so i dont know why it isnt working in Kotlin.</p&...阅读全文

资源 2018-06-04 21:01:20 kotlin

在Android上运用Anko和Kotlin开发数据库:SQLite从来不是一件轻松的事(KAD25)

作者:Antonio Leiva 时间:Mar 30, 2017 原文链接:https://antonioleiva.com/databases-anko-kotlin/ 事实告诉我们:在Android中编写数据库是相当无聊的。 使用SQLite时,所需的所有模板在当今世界上都不是一件最令人愉快的事情。 所幸的是,在最新一次Google I / O会议上,它们宣布的其中一项事项(称其为:Room),就是为简化这项工作,开发出足够的库。 然而,运用Anko,我们仍可以继续像使用低级别框架一样工作,但是摆脱了实施过程中一些繁琐的部分。今天我们来看看究竟是怎么样做到的。 运用Anko创建你的数据库 这里你将看到如何从头开始创建数据库。在Android上,你需要SQLiteOpenHelper,来检...阅读全文

博文 2017-06-10 08:00:01 figozhg

Android6.0以上系统获取内置SD和外置SD卡路径的方法

以前写了一篇文章也是说获取内外SD卡路径的:Android获取手机自带SDCard和外置SDCard路径,但是只适用于5.0及以下的系统。 在Android Studio中使用,StorageVolume是在Android7.0(api24)里面才添加的类 /** * 获取SD卡路径 * @param mContext * @param is_removable SD卡是否可移除,不可移除的是内置SD卡,可移除的是外置SD卡 * @return */ public static String getStoragePath(Context mContext, boolean is_removable) { StorageManager mStorageManager = (StorageMan...阅读全文

博文 2017-09-20 17:03:04 yuewawa

带你全方位使用Anko库-上篇

kotlin的伴生库-anko迭代了已经多个版本了,但是目前网上的资源主要集中在官方说明的机械翻译或者旧博客的复制/粘贴上。 本文带大家全方位的熟悉anko库的使用。anko库目前主要有四个核心库 anko-commons库,一些通用功能,集成方式:dependencies { //anko_version脚本配置,下同,本文中,该值为0.10.0 compile "org.jetbrains.anko:anko-commons:$anko_version" } anko-layout库,牛逼的dsl(领域特定语言)功能,布局的另一种代码方式,相对比较简洁,xml的简易替代。集成方式: dependencies { // Anko Layouts compile "org.jetbrains...阅读全文

博文 2017-06-04 00:24:47 CysionLiu

在kotlin中使用room(Room Persistence Library)和遇到的坑

有关room介绍请看这里 下面进入正题,如何在kotlin中使用room;大致与java还是一样的,但是会有几处坑会在文中说道;在文尾会总结 1.创建Entity @Entity(tableName = "story") @TypeConverters(Converters::class) data class StoryEntity constructor( @PrimaryKey @SerializedName("id") var id: Int) { constructor() : this(0) @ColumnInfo(name = "images") @SerializedName("images") var images: Array? = null @Colum...阅读全文

博文 2017-07-01 11:03:52 JokAr_

Kotlin编程开发Android运用程序(Volley+Gson依赖库)

在2017年Google IO大会中,宣布Kotlin 作为官方语言。跟着党走总没错的想法,开始满怀激情的开始Kotlin之旅。 历经一个下午的探索Kotlin编程后。昨晚按耐不住激动心情,边摸石头边过河的方式,花了一个晚上时间,撸了本项目代码。过完一段时间的后,Kotlin理解提高了,再回头看下本项目,肯定是左右嫌弃的,但是这毕竟是本人的第一个Kotlin项目。 1. AndroidStudio支持Kotlin的配置: 若是使用的AndroidStudio3.0以下,是默认不支持Kotlin语言的,需要自行配置。 Androistudio 3.0以上是自带支持Kotlin。 具体配置与使用,可以参考上篇讲解的文章, Kotlin编程之AndroidStudio(包括3.0与2.x版本)配置...阅读全文

博文 2017-05-22 18:02:26 hexingen

在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