Gradle Cheat Sheet (2): Groovy Closures and Objects
Groovy可以通过Closure(闭包)来定义函数,闭包有两个特点:闭包可以像数值和字符串类型那样被赋给变量,也可以访问其作用域外的变量。 1. 闭包的声明和调用 使用def 声明闭包,注意这里和声明函数相比多了等号= : def foo = "One million dollars" def myClosure = { println "Hello fro…
Read more
learn, build, evaluate
Groovy可以通过Closure(闭包)来定义函数,闭包有两个特点:闭包可以像数值和字符串类型那样被赋给变量,也可以访问其作用域外的变量。 1. 闭包的声明和调用 使用def 声明闭包,注意这里和声明函数相比多了等号= : def foo = "One million dollars" def myClosure = { println "Hello fro…
Read more
本系列整理自Udacity上Gradle for Android and Java课程(国内需访问中文版用Gradle构建Android和Java),旨在提供一份快速参考手册,以便查用。 0. Gradle与Groovy Gradle编译脚本是基于Groovy编写的。Groovy是一个运行于JVM的脚本语言,支持DSL(Domain Specific Languages),具有很高的可读性…
Read more
当界面中内外两层View都可以滑动时,就会产生滑动冲突。比如一个列表型的ViewGroup里面盛放了若干个View,ViewGroup可以垂直滚动,而里面的View又支持水平滑动的手势,当用户在ViewGroup和View的重叠区域滑动手指时,就会产生滑动冲突——无法判断当前滑动操作应当由ViewGroup还是View来进行处理。本文通过一个简单的例子,说明滑动冲突的一种处理方法。 1. 构造…
Read more
本文通过实现一个可以垂直滑动的列表型ViewGroup,介绍通过继承ViewGroup来实现自定义ViewGroup的方法。 1. 创建继承ViewGroup的自定义ViewGroup 首先创建VerticalScrollView直接继承自ViewGroup: public class VerticalScrollView extends ViewGroup { } 2. 自定义ViewG…
Read more
在设计自定义View时,可以选择直接继承View、直接继承ViewGroup、继承特定View、继承特定ViewGroup等方式。本文通过实现一个在屏幕上绘制矩形的自定义View,介绍通过继承View来实现自定义View的方法。 1. 创建继承View的自定义View 首先创建BlockView直接继承自View: public class BlockView extends View {…
Read more
SearchRecentSuggestionsProvider是用于实现简易搜索历史Provider的父类,官方API Guide在Adding Recent Query Suggestions一节介绍了添加搜索历史的方法,具体来说,除了必要的xml配置,只需实现自己的Provider继承SearchRecentSuggestionsProvider: public class MySugge…
Read more
在展示列表时,可以通过在Toolbar中放置Spinner的形式,提供对列表进行过滤和分类的功能。本文在RecyclerView使用方法举例(2)的基础上,为Toolbar添加一个用于选择电影排序方法的Spinner,如图1所示。 0. 关于排序字符串的处理 之前在MovieService.java中定义了三种排序方式:按照流行度降序、按照投票平均分降序、按照投票量降序,如下所示: Str…
Read more
ItemTouchHelper是用来为RecyclerView添加Swipe to Dismiss和Drag & Drop行为的帮助类,使用它可以很方便地实现对RecyclerView中item的扫动和拖拽动作。 ItemTouchHelper通过ItemTouchHelper.Callback和你的具体应用进行交互,ItemTouchHelper.Callback负责控制所希望使…
Read more
最近在C#使用StringBuilder处理调用dll获得的字符串时,中文出现乱码,如原字符串为“hello 你好”,在StringBuilder获取后变成“hello 浣犲ソ”。使用的调用为: [DllImport("user32")] public static extern IntPtr SendMessage(IntPtr hWnd, NppMsg Msg, int…
Read more
SearchView除了提供输入和提交搜索的界面,还能够根据输入显示对应的搜索提示。本文以搜索历史记录为例,介绍自定义Android搜索提示的方法,如图1所示。 1. SearchRecentSuggestionsProvider 首先要创建自己的SearchRecentSuggestionsProvider,用于保存和查询搜索记录。 1.1 创建SearchRecentSuggestio…
Read more