Android学习
肖坤的博客
GitHub: https://github.com/helloxkk
展开
-
再按一次退出程序
我们平时使用手机的时候,经常会看到很多APP退出的时候,都会有提示再按一次退出应用程序,我觉得这种使用这种提示是很有必要的,如果退出时直接弹出Dialog的话,用户体验不太好。 重写onKeyDown方法,监听手机返回键,按下返回键时会触发此方法:private long exitTime = 0;public boolean onKeyDown(int keyCode, KeyEvent ev原创 2016-06-30 20:16:22 · 1229 阅读 · 0 评论 -
一行代码获取ViewPager中当前显示的Fragment
一句代码获取ViewPager中当前显示的Fragment 我不知道网上的那些答案为什么写的那么复杂, 明明一行代码可以搞定的事情, 写的这么麻烦, 有两种方式可以获取原创 2016-11-24 20:33:46 · 2177 阅读 · 1 评论 -
HashMap一键对多值的存与取
Map一键对多值的存与取1. map的一个值对应多个value,根据map的性质,是要覆盖的,只有用它的泛型放,Map<String,List> map1 = new HashMap() if(map1.containsKey(data.getPrpName())){ //判断key是否一样 map1.get(data.getPrpName()).add(map2); }else原创 2016-11-25 09:26:57 · 11925 阅读 · 0 评论 -
MVP详解 - MVP最佳实践
所谓 MVP(Model-View-Presenter) 模式。是将 APP 的结构分为三层:view - UI显示层view 层主要负责:提供 UI 交互在 presenter 的控制下修改UI。将业务事件交由 presenter 处理。注意:View 层不存储数据,不与 Model 层交互。 presenter - 逻辑处理层presenter 层主要负责:对 UI 的各种业务事件进行转载 2017-03-20 23:06:19 · 996 阅读 · 0 评论 -
JAVA中的权限修饰符
Java中修饰符总结:访问控制修饰符 作用: 用于控制被修饰变量、方法、类的可见范围。 public的访问级别是最高的,其次是protected、默认和private 成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有 顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰 局部变量不能被访问控制修饰符修饰原创 2016-06-24 20:11:33 · 37028 阅读 · 14 评论 -
总结和分析几种判断 RecyclerView 到达底部的方法
上一篇文章我讲到 用事件分发的原理结合 SwipeRefreshLayout 写一个 RecyclerView 的上下拉 ,里面有一个判断 RecyclerView 是否到达底部的方法 isBottom。我的同事用了这个上下拉之后发现有些小 bug,没考虑周全,譬如各个子项高度不统一的时候,然后我找到原因是因为这个判断上下拉的问题。所以,我就去网上查到几种判断 RecyclerView 到达底部的方转载 2016-12-30 09:10:12 · 1954 阅读 · 0 评论 -
关于 Kotlin 的一些小知识的总结
1. Class在 Kotlin 中 Class 的默认修饰符是 final,是不可以被继承和重写的,如果需要进行重写,可以在类名前面加修饰符 open,像下面这样:open class RunClass {}2. 构造函数当我们只需要一个构造函数的时候,可以直接有下面这种方式进行声明:class CustomView(context: Context?, attrs: AttributeSet?,原创 2017-07-03 15:14:32 · 498 阅读 · 0 评论 -
AndroidStudio中的NDK开发初探
前段时间由于做项目紧,一直都没时间写博客,现在终于可以补上一篇了,一直想学习一点NDK开发的知识,但是迟迟没有动手,正好有一个NDK相关的项目机会,便查阅了一些资料,遂将学习的一些心得方法记录于此。原创 2017-08-04 00:18:54 · 1884 阅读 · 2 评论 -
仿QQ空间打赏功能实现
1. preview原创 2017-11-19 20:51:29 · 992 阅读 · 1 评论 -
GestureDetector与ScrollView事件冲突解决方法
在Avtivity中重写dispatchTouchEvent方法 : @Override public boolean dispatchTouchEvent(MotionEvent ev){ //让GestureDetector响应触碰事件 gesture.onTouchEvent(ev); //让Activity响应触碰事件原创 2016-11-23 15:25:40 · 2151 阅读 · 0 评论 -
安卓更新UI的几种方法
安卓更新UI的几种方法:1.利用Looper更新UI界面 如果我们的代码需要随时将处理后的数据交给UI更新,那么我们想到的方法就是另开一个线程更新数据(也必须这么做,如果我们的数据更新运算量较大,就会阻塞UI线程),也就是界面更新和数据更新是在不同线程中(android采用的是UI单线程模型,所以我们也只能在主线程中对UI进行操作),但这会导致另一个问题:如何在两个线程间通信呢?android提供原创 2016-09-16 15:12:31 · 1415 阅读 · 0 评论 -
EdieText输入框抖动震动效果
EdieText输入框抖动震动效果应用场景:当用户输入错误时原创 2016-06-26 00:18:39 · 1180 阅读 · 0 评论 -
深入分析:Android中app之间的交互(二)
方式二:使用ComponentName 在前一篇相关主题的博文中我们了解了如何使用Action来启动当前应用之外的Activity处理我们的业务逻辑,在本篇笔记中我在简单介绍一下使用ComponentName来与当前应用之外的应用进行交互。 我们首先来了解ComponentName这个类;ComponentName与Intent同位于android.content包下,我们从Android官方原创 2016-08-19 01:36:31 · 905 阅读 · 0 评论 -
深入分析:Android中app之间的交互(一)
深入分析:Android中app之间的交互1. 使用Action 在我们开发Android App应用的时候,有些需求需要我们启动其他的App来处理一些逻辑 例如我们需要根据一个地址来调用系统或者相关的地图Map App,这样我们不用在自己的App中编写相应的功能,而是通过Intent来发送一些请求,调用相关的应用来处理这些请求。并且我们称这种Intent为隐式的Intent;这种隐式的In原创 2016-08-19 01:19:48 · 1334 阅读 · 0 评论 -
ListView的四种优化方式
优化方式一: 第一种优化就是重用convertView,这也是最简单的一种优化方式,就是在Adapter类的getView方法中通过判断convertView是否为null,是的话就需要在创建一个视图出来,然后给视图设置数据,最后将这个视图返回给底层,呈现给用户;如果不为null的话,其他新的view可以通过复用的方式使用已经消失的条目view,重新设置上数据然后展现出来。原创 2016-07-18 15:35:59 · 19336 阅读 · 0 评论 -
ListView OnScrollListener解析
OnScrollListener实现滚动事件的监听// 给列表设置滑动监听 mLvAppManager.setOnScrollListener(new OnScrollListener() { public void onScrollStateChanged(AbsListView paramAbsListView, int paramInt) { } public原创 2016-06-30 23:48:30 · 539 阅读 · 0 评论 -
响应式函数编程_RxJava & RxAndroid
响应式函数编程_RxJava & RxAndroid主页: https://github.com/ReactiveX/RxJava中文资料: https://github.com/lzyzsd/Awesome-RxJavahttps://www.zhihu.com/question/35511144用途: 异步操作在程序逻辑异常复杂的情况下,仍然可以让代码的逻辑保持简洁配置: 添加原创 2016-08-23 13:44:32 · 938 阅读 · 0 评论 -
Android中的Handler机制
android的消息处理机制 — Looper,Handler,Message 在介绍Handler之前,先来了解一下几个基本的术语:通信的同步:指向客户端发送请求后,必须要在服务端有回应后客户端才继续发送其它的请求,所以这时所有请求将会在服务端得到同步,直到服务端返回请求。通信的异步:指客户端在发送请求后,不必等待服务端的回应就可以发送下一个请求。 所谓同步调用,就是在一个函数或方法调用原创 2016-08-27 21:32:08 · 568 阅读 · 0 评论 -
使用观察者模式进行订单管理
使用观察者模式进行订单管理概念:观察者模式是由发送者和观察者构成,发送者在状态改变时,主动通知所有的观察者做相应的刷新。 观察者模式定义了对象之间一对多的依赖关系,以便一个对象状态发生改变时,所有依赖于它的对象都能够得到通知,并自动刷新。/** * author: Alan on 2017/12/14 15:34 * address: xk6321@gmail.com * desc原创 2018-01-30 22:06:01 · 1723 阅读 · 0 评论