- 博客(403)
- 资源 (9)
- 收藏
- 关注
原创 List截取
/** * 截取list,保留前l位 * Examples: * list = [0, 1, 2, 3, 4, 5] * subList(list, 3); * list = [0, 1, 2] * * @param list 待截取list * @param newLength 保留前length...
2019-01-25 20:09:27 1840
原创 String字符串去重,保证顺序
/** * 字符串去重 * * @param str 待去重字符串 * @return 去重后字符串 */ public String removeDuplicate(String str) { if (str == null) return str; int len = s...
2019-01-25 17:50:56 6140 5
原创 List去重的N种方式
/** * LinkedHashSet有个特性:不能添加重复数据并能保证添加顺序 * * @param list */ public static void removeListDuplicate1(List<String> list) { LinkedHashSet<String> set = new L...
2019-01-25 17:35:40 4172
原创 M3版本迭代小技巧总结
M3版本迭代小技巧总结:1.RecyclerView,ListView中获取position时谨慎使用holder.getAdapterPosition():1.1 目前测试发现:至少两种情况下,ArrayIndexOutOfBoundsException: length=10; index=-1,必现: 调用removeItem时; 同时点击两个Item时;1.2 官方文档解释...
2019-01-23 15:49:20 219
原创 定位权限的获取方式
/** * 与权限相关的工具类 * Created by @author iblade.Wang on 2019/1/8 19:22 */public class PermissionUtils { /** * 判断位置权限集合 */ public static String[] permissionsLocation = {Manifest.per...
2019-01-09 21:56:52 2283
原创 Android获取定位经纬度,转换成地址
private LocListener locListener = null; /** * 点击获取地图 * * @param view */ public void onClick(View view) { if (null == locListener) { locListener = new L...
2018-12-26 19:34:57 8188
原创 Android Studio 找不到符号 变量xxx 类id
module中布局文件移动文件之后,发现代码编译错误,报错信息如下:错误: 找不到符号符号: 变量 tv_content位置: 类 id但是,在Android Studio里面点击id的使用,仍然可以跳转到xml里面。原因是:代码是从一个module移动到另一个module,对R的引用还是引用的之前的module的,导致无法找到。解决方法是:把import里面对R的引用删除掉,让A...
2018-12-16 23:01:52 10612 10
原创 RecyclerView ViewHolder getAdapterPosition()返回-1(NO_POSITION)
RecyclerView 自带删除Item方法notifyItemRemoved(position);频繁点击删除时,突然抛出越界异常显示 position = -1 ;java.lang.ArrayIndexOutOfBoundsException: length=10; index=-1at java.util.ArrayList.get(ArrayList.java:310)WTF...
2018-12-03 15:27:46 10179 2
原创 代码动态设置Margins
public static void setMargins(View v, int l, int t, int r, int b) { if (v.getLayoutParams() instanceof ViewGroup.MarginLayoutParams) { ViewGroup.MarginLayoutParams p = (ViewGro...
2018-11-30 10:24:16 2222
原创 Git命令自动补全
下载git源码使用如下命令即可下载:git clone https://github.com/git/git复制 git-completion.bash源代码下有个 contrib/completion 目录,有个 git-completion.bash 文件cd git/contrib/completion/将该文件复制到主目录(~)下注意:复制时,文件名前加一个"点"(.),...
2018-11-08 19:53:45 8839 1
原创 Android Studio卡顿
AndroidStudio 卡顿 固态硬盘打开studio64.exe.vmoptions改成这样:-Xms4096m-Xmx4096m-XX:MaxPermSize=4096m-XX:ReservedCodeCacheSize=1024m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-Dsun.io.useCanon...
2018-10-30 18:05:29 1181
原创 Android中Handler弱引用工具类
经常会用到Handler,我们也清楚它会内存泄露,如果再View中使用,很难做到onDestroy( )中removeAllCallback(null),索性写个工具类,但是我在项目中使用时候,发现有被GC的风险。/** * Created by ibalde.Wang on 2018/10/25 12:10 */public class HandlerUtils { priva...
2018-10-26 19:32:46 2288 3
原创 TextView跑马灯-两种实现方式
Android中TextView跑马灯有多种实现方式;一种是自定义控件,另外一种是写一个工具类自定义控件/** * Created by iblade.Wang on 2018/10/24 10:29 */public class MarqueeTextView extends TextView { public MarqueeTextView(Context context...
2018-10-26 19:27:51 3677
原创 Activity切换动画(开启/退出)的两种实现方式
Activity系统默认的进入动画是从右侧进入到左侧停止,退出动画是从左到右移动直到完全退出界面。如果要修改Activity进入和退出动画有两种方式。第一种方式:overridePendingTransition方法startActivity()方法之前调用overridePendingTransition方法。startActivity(intent);overridePendingTr...
2018-10-23 19:53:32 14154 3
原创 java.lang.ClassNotFoundException: Didn't find class "XXX.MainActivity" on path: DexPathList[...
2018-10-19 10:48:27 39158 9
原创 Git使用笔记
安装Git客户端的话,参考该文章https://www.cnblogs.com/vitah/p/3612473.htmlgit使用基本流程:1.从仓库克隆代码到本地找到公司GitLab项目地址ssh地址,拷贝本地任何一个文件夹 git clone ssh地址2.提交操作说明git add .添加所有文件git status查看状态git commit...
2018-10-12 11:27:45 209
原创 HashMap源码解析
来不及整理电子版,先献丑把笔记本拍几张,随后整理。有人问,什么年代了,还手写笔记,哈哈,如果不亲自手写一遍,我是真心记不住。很多API不用知道工作原理 一样可以使用,所以平时只是使用,如果要想进一步知道原理,岂能不下点功夫,例如 按照自身理解,动笔誊写一遍。...
2018-09-25 16:07:21 214
原创 Android面试题总结(2018年9月)
2018年9月,面试题总结,顺利拿到offer,并没有想象中的开心,或许随着工作年限的增长,对自己技术进步的步伐提出了更高的要求,加油!1.在Android开发中,谈一下您使用位运算的场景?(https://blog.csdn.net/zzp16/article/details/7956768)2.IntentService实现原理3. handler实现原理,能否用于子线程间通信,如何实现...
2018-09-25 15:35:00 417
原创 Kotlin初体验(五)-空安全
首先说 空 这件事,空 :One of the most common pitfalls in many programming languages, including Java is that of accessing a member of a nullreferences, resulting in null reference exceptions. In Java this wou...
2018-09-19 19:42:46 219
原创 Kotlin初体验(四)- 控制语句
条件分支条件分支是最简答的控制语句,主要包括两路分支和多路分支,我们一起探索下Kotlin给条件分支带来了哪些变化简单条件分支直接上代码: var i = 0 textView.text = &amp;amp;amp;amp;amp;amp;quot;开关&amp;amp;amp;amp;amp;amp;quot; //类似Java写法 btnClick.setOnClickListener {
2018-09-19 19:39:05 376
原创 Kotlin初体验(三)- 字符串 和 容器
字符串字符串与基本数据类型转换基本数据类型转String,在上一篇博客已经讲过,调用toString(),反过来,字符串又该如何转换成基本数据类型呢?请看下表字符串转换为其他数据类型的Kotlin与Java方式对比字符串转换目标Kotlin转换方式Java转换方式String-&amp;amp;amp;amp;amp;gt;InttoInt( )Integer.parseInt(字符串变量)Str...
2018-09-19 18:38:30 1338
原创 Kotlin初体验(二)- 基本数据类型
首先看一下Kotlin基本数据类型和Java区别: 基本数据类型名称 Kotlin的数据类型名称 Java的数据类型名称 整形 Int int和Integer 长整型 Long long和Long 浮点型 Float float和Float 双精度 Double double和Double 布尔型 B...
2018-09-12 15:14:45 465 2
原创 Android隐藏软键盘
网上好多方法说的隐藏方法,其实是隐藏/显示方法,即,当前键盘显示,调用一下,隐藏,在调用一下,又显示了。下面提供两种彻底隐藏的方法: /** * 软键盘显示/隐藏 */ public void hideShowKeyboard() { InputMethodManager imm = (InputMethodManager) getSyst...
2018-09-11 16:56:05 8584 3
原创 com.android.support冲突的解决办法
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes如果很多第三方包都有与support包冲突的话,可以在build文件添加以下代码,这样就不用一个一个依赖的exclude了://强制所有的第三...
2018-09-06 17:44:34 1452
原创 Kotlin初体验(一)-引入Android Studio
Kotlin问世于2011年,直到近两年被JetBrains,Google等公司扶持下,才被逐渐重视起来。尤其是2017年5月份谷歌宣布把Kotlin作为Android的官方开发语言,紧接着10月份Android Studio3.0正式集成了Kotlin开发环境,11月份更完善的Kotlin1.2版正式发布。尽管Java由来已久,根深叶茂,但作为Android开发人员,尽快了解Kotlin是大势所...
2018-09-06 15:52:59 4697 1
原创 AndroidStudio中调试java打印中文乱码
在AndroidStudio中调试Java程序,控制台输出时候中文出现乱码。就是下图酱紫。肯定是UTF-8出问题了,咋办?改吧,一看AS右下角,当前就是UTF-8啊!莫慌,去java module的build.gradle中加一段任务试试。tasks.withType(JavaCompile) { options.encoding = "UTF-8"}...
2018-09-05 16:28:45 4508
原创 JVM类加载三步走
Java虚拟机通过加载、连接和初始化一个类型,使该类型可以被正在运行的Java程序使用。加载:把二进制形式的Java类型读入Java虚拟机中。 连接:把加载的二进制形式的类型数据合并到虚拟机的运行时状态中去。 1. 验证:确保Java类型数据格式正确并且适合于Java虚拟机使用。 2. 准备:负责为该类型分配它所需内存。 3. 解析:把常量池中的符号引用转换为直接引用。(可推迟到运行中的程序...
2018-09-04 17:35:11 409
原创 Android属性动画优化
属性动画优化思路:①使用PropertyValuesHolder ②使用Keyframe ③animator.setRepeatCount(ValueAnimator.INFINITE)及时cancel()④动画卡顿,可以考虑使用自定义控件实现,如果一个自定义不行,那就是两个。。。(待续)一,PropertyValuesHolder ...
2018-08-31 18:29:35 2806
原创 SSDP在Android上的实现
一.什么是SSDP:SSDP(Simple Service Discovery Protocol),简单服务发现协议,用于发现局域网里面的设备和服务。 SSDP消息分为设备查询消息、设备通知消息两种,通常情况下,使用更多地是设备查询消息。设备查询消息-格式例子如下:M-SEARCH * HTTP/1.1HOST: 239.255.255.250:1900MAN: "ssdp:d...
2018-08-22 18:25:01 4358 4
原创 RecyclerView的插入,删除,替换
首先设置recyclerView动画mRecyclerView.setItemAnimator(new DefaultItemAnimator());然后在Adapter中定义三个方法 public void remove(int position) { list.remove(position); notifyItemRemoved(posit...
2018-08-18 17:26:10 2829
原创 Android Shape
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring&quo
2018-08-08 16:54:53 500
原创 区域选定(类似截图,可拖动)
/** * Created by ylWang on 2018/7/23 18:22. */public class MarkView extends RelativeLayout { private ImageView ivTouch; private RelativeLayout rlRect, rlRoot; private LinearLayout llS...
2018-07-30 11:16:20 1821
原创 微信/QQ登录分享-Android
/* * 微信第三方 此类必须存在,必须在“****.wxapi”包中 */public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler { // IWXAPI 是第三方app和微信通信的openapi接口 public static WXEntryActivi...
2018-07-26 10:46:41 887 3
原创 项目十大管理和五大过程
PMBOK五大过程组是什么? PMBOK五大过程组是:启动过程、规划过程、执行过程、监控过程、收尾过程。 各用一句话概括项目管理知识体系五大过程组: 1、启动过程组:作用是设定项目目标,让项目团队有事可做; 2、规划过程组:作用是制定工作路线,让项目团队“有法可依”; 3、执行过程组:作用是“按图索骥”,让项目团队“有...
2018-07-19 11:55:31 100161 11
原创 人脸信息集合去重
问题:人脸识别返回一个识别集合,元素包含三个字段trackId,face,name。每条数据均有trackId,且有可能会重复;不一定有name和face。我们认为同一个trackId的条目 均为重复信息,需求是 去除重复trackId,并保证保留下的那条信息最全,优先考虑name。源数据形式如下:遇到这种问题,建议在Person中加一个字段来标识自己的信息完整性,/...
2018-07-07 18:54:10 2079 5
原创 HTTPS讲了什么?(一)
1.张三和李四明文通信,很容易被王五监听,传输安全失败。 问题:明文传输太危险,建议加密一下。我们也知道了王五这家伙是网络传输路上实施劫持的专家级从业者,不可不防。 2.张三和李四商量用对网络传递信息进行加密,设计流程如下首先加密算法都是公开的,这下子,没有密钥的话王五就算劫持到密文也没用,反正看不懂。可是张三和李四之间怎么传递密钥呢?传送密钥还要经过网络,好吧,王五万一同时劫持到密钥,岂不是可以...
2018-06-28 17:02:13 302 1
原创 Python默认参数
def add_end(list=[]): list.append("end") return list# 默认参数多次调用,竟然每次结果不一样n = 0while n < 5: print n, add_end() n += 1打印结果:很多初学者很疑惑,默认参数是[ ],但是函数似乎每次都“记住了”上次添加了'end'后的list。原因解释如下...
2018-06-26 11:49:58 1006 4
原创 如何做一个有趣的人
1、不善表达是能力不行(储备太少),不是性格内向——请不要自欺欺人咯——这句话至少对于自己完全没毛病。2、【极简主义】衣服不要多,但要有质感。朋友不要多,但要有交情。信息不要多,但都很重要。读书不必多,但要有深度。东西不必多,但要用得着。3、【作者对极简主义的理解】不对这个泛泛的世界投注太多的感情、太多的时间、太多的金钱,把注意力集中在自己感兴趣的内容上;目标明确,专注不暧昧;该工作工作,该玩玩,...
2018-06-21 13:07:56 11232
原创 抽象类可以被实例化吗?匿名类又是什么?
public class TestClass { private InterfaceA a = new InterfaceA() { @Override public void testA() { } };//成员匿名类,例如在Android开发中常用的Handler。 public static void main(St...
2018-06-21 11:27:32 7555 2
原创 Java中clone( )和new效率比较
对象创建的几种方法:1.使用new关键字2.使用clone方法3.反射机制4.反序列化以上四种都可以产生java对象1,3都会明确的显式的调用构造函数2是在内存上对已有对象的影印 所以不会调用构造函数4是从文件中还原类的对象 也不会调用构造函数clone和new那更快?直接上代码测试:package com.miivii.javalib;/** * Created by ylWang on ...
2018-06-20 17:37:18 13040 7
Scrollview中嵌套ViewPager和ListView常出现的问题
2016-03-30
Android:ScrollView中嵌套ViewPager和ListView示例
2016-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人