21个值得思考的问题
同样买烟,有人要店员「顺便送火柴」,有人先砍一毛再用这一毛买火柴。店主的赚钱感觉完全不同——这就是最简单的心理边际效应。买一送一能奏效,也是同一套心理在作怪。 下面 21 个故事并不新鲜,但每个都卡在一个真实决策点上:怎么听、怎么选、怎么挖井、怎么离诱惑远一点。换一种做法,结果往往就不一样。 一、沟…
同样买烟,有人要店员「顺便送火柴」,有人先砍一毛再用这一毛买火柴。店主的赚钱感觉完全不同——这就是最简单的心理边际效应。买一送一能奏效,也是同一套心理在作怪。 下面 21 个故事并不新鲜,但每个都卡在一个真实决策点上:怎么听、怎么选、怎么挖井、怎么离诱惑远一点。换一种做法,结果往往就不一样。 一、沟…
下面汇总 8 种常用排序:插入(直接插入、希尔)、交换(冒泡、快速)、选择(直接选择、堆)、归并、分配(基数)。辅助空间最多的是归并,最少的是堆;平均最快的是快速排序。不稳定的三种:快速、希尔、堆。 资料由网络整理,如有问题欢迎指正。原文:Java常用排序算法/程序员必须掌握的8大排序算法 ;参考 …
TextView 是最常见的控件,用来显示文本:在 layout 里插入控件、设 id,Activity 里就能拿到它并改显示内容。其它按钮、列表、图片、滚动、输入框,套路都差不多——布局里放好,代码里按 id 取,需要时再挂监听。 一、常用控件各干什么 Button:布局里拖一个按钮,代码里通过 …
Activity 从启动到销毁会走过一组固定回调。这篇按启动与销毁、暂停与恢复、停止与重启、配置变化后重新创建,把 onCreate / onPause / onStop / onSaveInstanceState 该干什么讲清楚。 生命周期图画在文首;每个阶段都配有 XML 声明或 Java 示例…
Activity 生命周期可以想成一座金字塔:系统按台阶调用回调。新建实例时回调把状态往上推;到塔尖就是前台、用户可以交互。退出时再往下走,好回收资源。有时它会停在半山腰等着(切到别的 App),用户回来还能回到塔尖,并尽量恢复离开时的状态。 一、金字塔比旧生命周期图更好懂 Figure 1。这张图…
官方说法:一个 Activity 是应用程序组件,提供一块屏幕让用户完成任务——拨号、拍照、发邮件、看地图。每个 Activity 分到一个窗口来画界面;窗口通常铺满屏幕,也可以更小、浮在别的窗口上。 一、多个 Activity 与返回栈 一个应用通常由多个松耦合的 Activity 组成。其中会指…
IT 技术日新月异,新技术层出不穷。具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。大学毕业生所学到的知识,毕业之后 2 年内有效的不过剩下 5%——软件行业里,这种形势更明显。 我们赖以立足的,不在于现在掌握了多少知识,而在于学习能力有多强。一个善于学习…
本章节教你如何建立第一个 Android 应用程序:创建项目、运行可调试版本,以及一些应用程序设计基础——创建简单用户界面,并处理用户输入。 开始学习之前,确保你已经: 了解 Android 平台 安装了开发环境 掌握 Android 项目结构 Android 图形用户界面相关知识 一、创建一个 L…
图形界面开发有两件大事:控件布局,以及控件的事件处理。Android 的事件处理秉承了 Java SE 图形界面的风格,提供两套机制:基于监听,以及基于回调。 基于监听:为界面组件绑定特定的事件监听器。基于回调:重写组件的回调方法,或重写 Activity 的回调方法。 一、基于监听的事件处理 监听…
布局不一定只能写 XML。用 LayoutInflater 把 XML 灌成 View,或纯代码 new 出 LinearLayout / RelativeLayout,都能在运行时拼界面。关键是 inflate(resource, root, attachToRoot) 三个参数怎么配合。 一、L…