
Kotlin笔记
yf_d
擅长JavaScript开发的独立开发者。
技术栈:React,Redux,ReactNative,PHP,Laravel,Swift。
展开
-
【react-native】编写原生模块给JS进行交互,一键加群的实现。
最近一直用RN开发,原生已经小半年没碰过了,需要给Rn的程序加一个一键加群的功能,以往都是用Intent来写,但是RN不支持,查了一下文档,发现有个编写原生模块进行调用的方式,就写了一个加群的模块,很简单,首先去QQ群官网拿到android版的代码【intent的】1.编写Intent首先创建一个类:这个是继承rn的一个连接原生的模块。实现一个getName方法,返回值就是我们以后在...原创 2020-04-22 21:07:45 · 485 阅读 · 0 评论 -
Kotlin:根据日期获取星座
在群里看到一个同学的期末作业是根据日期返回星座,可能为了防止抄袭,要求加上诞生石。。其实没啥区别啊。。。下面是代码:override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activit...原创 2019-01-06 22:54:40 · 404 阅读 · 0 评论 -
Kotlin:自定义Toast,设置Toast宽度填充
今天打算重写一个Toast,原生的太丑了、遇到一些小问题,没少折腾!下面是预览图:这是一个横向填充的Taost。XML:这里有个地方注意!这样写是无效的,宽度仍然是内容的宽度。<?xml version="1.0" encoding="utf-8"?><LinearLayout android:padding="5dp" android:or...原创 2019-01-07 20:39:42 · 2424 阅读 · 0 评论 -
用泛型处理简单SharedPreferences数据获取与存储
android中封装SharePreference可以使用这种方法。import com.sun.org.apache.xpath.internal.operations.Boolimport kotlin.reflect.KFunctionobject Toperator{ /**获取泛型数据 * @param getType 获取数据类型 * **/...原创 2019-01-18 16:33:49 · 396 阅读 · 0 评论 -
Kotlin:支付宝app支付接入,沙箱demo,PHP服务端签名
为了给自己小应用加个捐赠。用了支付宝的接口。本篇是算是自己总结吧,一路坎坷。一个demo图(在服务器签的) 应用采用的是Kotlin开发的,为了测试支付宝的接口,就用了一个demo测试。本篇都是这个demo为基础。(kt版demo) 完全兼容支付宝的SDK,此处用得是新版的SDK,AAR格式 首先下载好SDK的aar文件,放入项目的libs文件夹下。 ...原创 2019-01-25 19:54:49 · 2264 阅读 · 1 评论 -
Kotlin:使用带接收者的lambda的apply与with函数简化代码
使用kotlin的标准库函数:with函数iwh_tab是一个实例化的android tab组件with函数接收两个参数,第一个是接收者,第二个是一个lambda,并且将第一个参数传入第二个lambda对象使用我们看看基本:根据lambda约定,我们把大花括号移到外部! with(iwh_tab,{ })//简化后如下with(iwh_tab){}//iwh_tab被传入l...原创 2019-01-21 20:39:12 · 262 阅读 · 0 评论 -
kotlin:安卓开发动态申请多个权限
应用接入支付宝的sdk,需要申请一些权限。这里是kotlin的代码:对了:6.0以后有3组,27个权限是需要动态申请的,具体,百度吧。下面申请了两个权限(要在manifest文件注册哈) //1、首先声明一个数组permissions,将需要的权限都放在里面 val permissions = arrayOf(Manifest.permission.WRITE_E...原创 2019-01-23 14:18:23 · 1954 阅读 · 0 评论 -
Kotlin Io流与序列化,小结
在Kotlin中IO库基本分为两类:字符输入输出流:Reader,Writer |负责对char的处理字节输入输出流:InputStream,OutputStream | 负责对byte的处理链接机制:流处理器之间可以相互关联起来,其中一个的输出作为另一个的输入。1.输入输出流结构InputStream原始处理器下的链接处理器:ByteArrayInputStream...原创 2019-02-23 15:00:03 · 920 阅读 · 0 评论 -
kotlin:使用SharePreference存储集合与数组数据
这里实现的是一个列表项收藏的功能,SQL太麻烦了。数组格式:ArrayList<Map<String,Any>>每一个list数组为一个列表项:思路就是把每次收藏的数据按照指定格式拼接存储成String。下面是用@@拼接每个list数组,list中的map使用>分割,为了后面获取匹配!可以自定义,泛化一下方法。例如数据为:动漫1 地址:xx.htm...原创 2019-02-12 22:33:13 · 1104 阅读 · 0 评论 -
android P(9.0)设备数据库导入,查询为空的问题。
原先数据库在android9.0设备下是正常使用的。在assets中内置一个数据库,程序初始化时,初始化数据库,并导入该数据库。但是在android9.0上默认使用了SQLite的新版特性:WAL模式。具体请百度,大概就是,数据没有直接被导入数据库,中间需要一些流程。db.disableWriteAheadLogging()放到数据库help:onCreate中就好了。...原创 2019-03-02 15:45:03 · 1131 阅读 · 0 评论 -
Kotlin设计模式:观察者模式
kotlin与java基本使用方法一样,不过写法更简洁。观察者,感觉就是多个事件源与一个订阅者,订阅者订阅多个事件源,当订阅者接收数据时候,所有的事件源都触发并更新数据。换成观察者,就是,一个目标对象状态改变,其它观察它的对象都收到通知,并改变,像广播一样。用kotlin代码实现如下:之前在菜鸟写过笔记,有一处错误,被观察者后面的 订阅者 -》修改为 被订阅者。/** * 观察...原创 2019-04-11 20:54:35 · 2505 阅读 · 0 评论 -
Kotlin设计模式:MVC模式
本篇使用kotlin的MVC模式,MVC模式在简单应用时候会显得很繁琐,可以直接操作modal,却要通过控制器,但是当应用越来越大的时候,MVC将数据与视图分离,更方便后期维护。所有交互通过控制器来实现。Modal使用kotlin的数据类。具体如下:/** * 数据类Modal */data class Student(private var name: String, pri...原创 2019-04-11 22:35:04 · 1006 阅读 · 0 评论 -
Kotlin设计模式:工厂模式
本篇继续练习kotlin设计模式之工厂模式,Factory,这个模式许多第三方类库都在使用,但是对于一般简单的对象类型还是直接使用新建比较好。用工厂反而繁琐,多此一举。上代码:很直观,就不多说了。package KotlinMode/** * 工厂模式 */interface Fruits { fun showName()}class Lemon(private...原创 2019-04-12 22:19:26 · 1435 阅读 · 0 评论 -
Kotlin安卓开发:RecyclerView的使用
今天记录一下RecyclerView的使用。相比ListView,RecyclerView给了更大的自由度,比如监听器自己完成(2333),最好用还是布局管理!xml:一会会演示这三个列表,分别是横向,竖向,瀑布流。 <android.support.v7.widget.RecyclerView android:layout_wi...原创 2019-04-17 15:51:18 · 1032 阅读 · 0 评论 -
TornadoFx-Kotlin实战桌面应用开发之打包
已经开源:kotlin桌面开发:小助手:https://github.com/iwh718/TornadoFX-kotlinDesktopAPP前段时间学习使用TornadoFx一个kotlin版的javaFx框架开发了一个应用,完成后,第一次遇到打包jar文件(之前一直写JS前端和PHP后端,从来没用过java),心累啊,然后就是打包成为EXE格式的程序。这篇文章只做打包的记录,至...原创 2019-06-06 21:43:34 · 6975 阅读 · 6 评论 -
Kotlin安卓开发:notification通知的适配
最近一直在学习Kotlin桌面端框架TornadoFx的使用,没怎么写笔记了,使用kotlin开发桌面应用很棒啊,有空一定写个记录,其中还有JavaFx的Jfoenix的Material设计的UI库在TornadoFx简直无缝使用。哈哈。进入正题,在社区看到有人说有没有锁屏备忘录的应用,就花点时间写了个android的。然后遇到了:android8.0的通知适配,主要是通知的通道与分组,前...原创 2019-06-02 09:17:46 · 1766 阅读 · 0 评论 -
Kotlin安卓开发:监听锁屏与亮屏,推送通知
前面说过写了个todo的应用:锁屏备忘录。肯定要监听锁屏的事件。首先写个Service启动后创建一个广播接收器:监听系统的锁屏与亮屏事件,这个接收器写在service的OnCreate里。 mBroadcastReceiver = object:BroadcastReceiver(){ override fun onReceive(context: Cont...原创 2019-06-02 09:29:04 · 1043 阅读 · 2 评论 -
Kotlin:实现APP的本地升级与下载更新
这里就不写服务端的东西了。class Utils{ /**@param CheckUp 检查版本更新 **/ companion object { val versionUrl = "http://www.xxx.com"//获取版本号 val versionWd = "https://www.sxxx/xx.apk"//获取Apk文件...原创 2018-12-27 22:25:29 · 3247 阅读 · 2 评论 -
Kotlin:使用Application类获取全局Context
今天碰到一个群友说起application类,想着用kotlin写一下。kotlin没有static类型,只能用伴生对象了。很简洁:以后就可以直接在任意的类里面使用WdTools.getContext()获取Context对象了。class WdTools:Application(){ companion object { var _context:Appl...原创 2018-12-27 22:20:07 · 10930 阅读 · 0 评论 -
Kotlin获取组件对象的泛型方法
刚接触kotlin记一下:findViewById()这个方法用来获取组件对象第一种普通的://button id为 btn_1...mian(){ private var btn:Button?=null //kotlin防止出现空指针用了? onCreate(...){ btn=findViewById(R.id.btn_1) //这里...原创 2018-09-02 08:11:32 · 1219 阅读 · 0 评论 -
Kotlin:安卓首页定时动画
这里分几个步骤:设置首页的Activity为启动页面 重写onCreate中,调用两个函数,定义的动画函数,监听函数首先,设置启动页面:在activity中添加intent过滤器,第一个动作是设置主页面,第二个具体的定义为启动页面,这里注意那个theme,我们设置的是全屏首页,所有要把actionbar去掉。 <activity android:name...原创 2018-09-09 11:25:56 · 1208 阅读 · 2 评论 -
Kotlin:okhttp3中的异常处理
最近写一个网络爬虫,安卓端用得okhttp3,开发语言用得是kotlin,这这方面资料挺少的,就写一下吧,处理请求失败的情况,防止闪退! val client = OkHttpClient.Builder().cookieJar(cookieJar).build() //初始化请求 val myinfo = FormBody.Builder().add("user", user).bu...原创 2018-09-10 12:57:24 · 2510 阅读 · 0 评论 -
android MenuItem item的getactionView方法提示is deprecated 解决办法
这里用的是Kotlin语言写的。因为在android的api:26上这个方法被改了!原先写法:override fun onCreateOptionsMenu(menu: Menu): Boolean { getMenuInflater().inflate(R.menu.activity_wd_main_drawer, menu) var ...原创 2018-09-07 14:31:11 · 2998 阅读 · 0 评论 -
Kotlin安卓开发:webView动态注入JS修改嵌入的iframe样式
val web_wd = findViewById<WebView>(R.id.web_wd)//获取 webview对象var web_set = web_wd.settings//获取webviewset对象web_set.javaScriptEnabled=true//设置允许JS,会提示xss危险web_wd.webViewClient=object:...原创 2018-10-12 22:18:20 · 1744 阅读 · 0 评论 -
Kotlin 开发安卓PopWindow 内部按钮出现空指针错误!解决方法
错误:按钮事件监听发生异常Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener原因是pop导入的xml布局不是main的布局,所有没法直接用set监听事件解决:用pop布局.findViewById就好啦! val loginPop_view: View = LayoutI...原创 2018-09-29 20:09:39 · 418 阅读 · 1 评论 -
kotlin安卓:每天一个组件 常用对话框
今天用到的是对话框(前排提示,导包时候注意,是原生包,不是V7的本文)看看所有的按钮:这里放一个代码循环设置监听器: val dia_1 = findViewById<Button>(R.id.btn_dia1) val dia_2 = findViewById<Button>(R.id.btn_dia2) ...原创 2018-10-16 19:43:36 · 2830 阅读 · 0 评论 -
kotlin设置actionbar和状态栏颜色一致
首先在mainfest文件中设置主题:android:theme="@style/AppTheme接下来去看看:这个主题继承了theme.M。。。的样式下面item是自定义的会覆盖父类样式,这里注意,如果活动中继承了Appcompat要用compat主题,不然会闪退、 <style name="AppTheme" parent="android:Theme.Mate...原创 2018-10-16 19:51:26 · 1747 阅读 · 0 评论 -
Kotlin开发 SQLite使用
//这里是写的工具类class wenSql(context: Context, name: String, factory: SQLiteDatabase.CursorFactory?, ver: Int) : SQLiteOpenHelper(context, name, factory, ver) { val Create_ = "Create table wen(id ...原创 2018-10-10 17:26:04 · 3651 阅读 · 0 评论 -
kotlin安卓:每天一个组件:自定义组件
自定义组件:需要继承View类,重写部分方法 自定义:class myView: View{ private var paint = Paint()//画笔对象 private var H = 54F//高度 private var W = 54F//宽度 constructor(context: Context):super(context)//初始化构造...原创 2018-10-10 17:29:46 · 1193 阅读 · 0 评论 -
Kotlin安卓:实现okhttp3持续登录,同步到webview
经常用httpclient请求的的情况下,一般就是用jsoup解析,去爬数据,用okhttp3实现cookie的保存。这里做的是用okhttp3实现登录请求,然后直接将登录后可访问的页面Cookie同步加载到webview里面去。将账号与密码保存到shareP ····下次打开webview就可以直接访问已登录页面了。下面开始具体实现步骤:语言:kotlin,库: okhttp3 组件...原创 2018-10-19 19:26:09 · 1469 阅读 · 0 评论 -
Kotlin安卓开发:Tablayout组件与Viewpage联动
由于android新的api放弃了actionbar的tab模式。就用了Tablayout组件和viewpage组件一起开发了。(起码不用监听手势)//tablayout组件:XML文件<LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:or...原创 2018-11-09 18:16:38 · 1780 阅读 · 0 评论 -
Kotlin安卓开发:导入外部数据库
涉及到内部数据库的创建使用。 外部数据库的导入。 kotlin的文件读写。最近在写一个学习资料类的应用。现在写到题库部分。思路是:事先准备好外部的数据库(就是题库了),然后,程序第一次运行时候,首先创建内部数据库,然后将外部数据库复制到内置,外置数据库文件在assets里面。内置的在/data/data/com.包名/databases/数据库名首先写一个SQL类,用来创建程序内...原创 2018-11-25 19:31:30 · 1398 阅读 · 1 评论 -
Kotlin安卓开发:ViewPage的动态刷新
总是遇到一个问题:无法动态刷新ViewPage里的FragmentViewPage里使用的是Fragment,list_fg就是一个fg集合、 list_fg.removeAt(msg.arg1) Log.d("msg:",msg.arg1.toString()) iwh_view_page_adapter.notifyDataSetChanged()这里接收要移除的...原创 2018-11-29 13:18:10 · 709 阅读 · 0 评论 -
kotlin安卓开发:fragment向activity传递数据通过handler,设置回调方法
从activity向fragment传递就比较方便了,直接用: fg.arguments = arguments现在看看怎么从fragment向activity传递数据。比如说,我们在一个ViewPage里面设置了若干个fragment,fragment里面有一个按钮,提交相关当前fg下标给viewPage所在的activity,删除当前的fg。这里使用了handler,提交完信...原创 2018-11-29 13:33:37 · 2782 阅读 · 0 评论 -
Kotlin安卓开发:组件Spinner使用
本来是用得radioGroup,结果太多了,占地方,就改为了spinner。xml:这里有一个弹出模式,一个是pop的一个是下拉。 <Spinner android:id="@+id/sortSpinner" android:layout_width="wrap_content" android:la...原创 2018-12-21 22:44:02 · 5197 阅读 · 6 评论