最近需要在开发的安卓项目中添加新浪微博一件关注的功能, 本来是一个很简单的功能, 就是调用新浪微博客户端显示用户信息的 Activity , 然后用户就点击关注按钮就可以了。 本来是很简单的功能, 可以网上找到的几乎都是 JS 的代码, 或者是要注册新浪微博 SDK 的代码, 这么简单的功能应该不用注册什么 SDK 的, 也不想参合什么 JS , 只要研究一下新浪微博客户端的 Activity 就可以了。 首先我们需要使用 AXMLPrinter2.jar 反编译新浪微博的 AndroidManifest.xml , 从中查找显示用户信息的页面, 反编译代码如下: java -jar... 阅读全文

ExtJS 是一个非常优秀的 JS 框架, 由于 ExtJS 自身非常庞大, 用于开发测试的 ext-all-debug.js 文件达到了 3.24M , 如果是再加载带注释的 ext-all-debug-w-comments.js 则更是达到了 6M , 可以说是非常庞大了, 因此动态加载 ExtJS 是很有必要的, 接下来就介绍如何对 ExtJS 做动态加载。 创建一个基本的模板 首先需要先创建一个基本可用的 ExtJS 模板, 这个很简单, 如下所示: <!DOCTYPE html> <html> <head> <title&... 阅读全文

结构 说明 Provide an interface for creating families of related or dependent objects without specifying their concrete classes. 为一个产品族提供了统一的创建接口。当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创建一个具体的工厂类。 适用条件 一个系统要独立于其产品的创建、组合和表示时; 一个系统需要由多个产品系列中的一个来配置时; 需要提供一个产品类库, 而只想显示他们的接口, 而隐藏他们的实现时。 实现 public... 阅读全文

本来是很久以前的帖子了, 居然还有人需要, 所以又翻了出来, 重新整理并发布到 github 。 The Open Took Kit (OpenTK), 是对 OpenGL、OpanAL、OpenCL 的跨平台的封装,使用 C# 编写,可以运行在 Windows、 Linux 以及 MacOSX 平台上, 任何 .Net 语言都可以使用它做开发。 主要特点如下: 快速开发 使用 .Net 的强类型和内嵌的注释文档, 提高代码流程,并且有助于快速发现错误。 集成 可以单独使用,也可以无缝集成到 Windows Forms、 WPF 或 GTK# 等其它应用程序中。 完全免费 ... 阅读全文

数据绑定一直是 MvvmCross (Mvx) 框架的核心, 随着 Mvx 版本的版本更新, 绑定语法由 Json 变化到了 Swiss 语法, 并逐渐向 Tibet 过度。 由于基于 Json 的绑定语法在 Mvx 3.0 之后的版本已经标记为过时, 不再支持, 因此不做介绍, 本文详细介绍 Swiss 和 Tibet 语法。 Mvx 实现了跨平台的数据绑定, 概念与 WPF/Silverlight/WinPhone (Xaml) 的数据绑定一致, 可以在 Android 和 iOS 平台使用, 这也正是 Mvx 框架的魅力所在。 Swiss 绑定语法 在 Xaml 平台下, 数... 阅读全文

ROW_NUMBER 是 SQL 2005 中新增的函数, 显示结果的行号, 多用于分页, 基本的语法为 ROW_NUMBER() OVER({<partition_by_clause>}<order_by_clause>) 其中, 分区语句是可选的, 排序语句是必须的, 比如这样的语句: SELECT ROW_NUMBER() OVER(ORDER BY ProductID), CategoryID, ProductName, UnitPrice FROM Products 返回的结果为: 也可以按照 CategoryID ... 阅读全文

介绍 MvvmCross (Mvx) 框架中的 ViewModel 之间的导航以及 ViewModel 的生命周期。 在 ViewModel 之间导航 Mvx 框架中, 用一个页面跳转到另一个页面, 对应的也会从一个 ViewModel 跳转到另外的 ViewModel , 页面间的跳转由 ViewModel 发起, 通常会调用 ShowViewModel 方法来完成 ViewModel 之间的导航, 这个方法提供了一下几个重载版本: protected bool ShowViewModel<TViewModel>( IMvxBundle parameterBu... 阅读全文

程序员应该要爱惜生命,做有用有意义的事情。做有用的事情,有两种方式,一、做一个对用户真正有价值的项目,这个项目是真正有意义有用的;二、朝正确的方向以正确的方式做项目。但是程序员会遇到很多失败的项目,这些系统要么是没有人用没有真正价值,要么是以不正确的方式做项目,使用不当的技术,例如,用报表工具代替查询、用ESB企业总线当作海量数据传输用,或者做一些没有实际用途的功能,如做一个万能的用户自定义查询系统、做用户自定义工作流工具、做用户自定义报表工具,这些项目无疑在浪费程序员的生命。笔者试图总结程序员浪费生命的几种方式,如下。 1、开发一个质量和性能很差的系统 程序员经常会碰到这样的项目,... 阅读全文

结构 说明 Represent an operation to be performed on the elements of an object structure. Visitor lets you define a new operation without changing the classes of the elements on which it operates. 封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改,接受这个操作的数据结构可以保持不变。 适用条件 访问者模式适用于数据结构相对稳定的系统,它把数据结构和作用于结构上的操作之间的耦合解... 阅读全文

MvvmCross 的特点 尽量使用可移植类库进行编码, 可以包括 视图模型 (ViewModel) 、 模型 (Model) 、 服务 (Service) 甚至界面 (View) 使用 MVVM 模式和数据绑定 (Data Binding) 技术 使用目标平台的本地化界面 框架的任何部分都可以被重写 准备使用 MvvmCross 推荐的方式是建立自己的 git 库, 然后将 MvvmCross 添加为 SubModule , 有自己 github 账户的话就更方便了。 我的是:MvvmCross-Learning MvvmCross 的文档主要是它在 github 上面的 ... 阅读全文

结构 说明 Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s structure. 模板方法模式准备一个抽象类,将部分逻辑以具体方法及具体构造子类的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,... 阅读全文

结构 说明 Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. 定义一个算法的系列,将其各个分装,并且使他们有交互性。策略模式使得算法在用户使用的时候能独立的改变。 适用条件 算法有多个变体可供使用; 多个相似的类仅仅因为行为不同, 这时可以将这些类合并并采用行为模式处理这些行为; 一个类中的某个行为有... 阅读全文

本博客基于 Tabler CSS 框架, 采用 Jekyll 模板引擎, 使用 Markdown 语法编写。

博客源代码及文章内容采用 AS-IS 协议发布,转载时请 AS-IS 。