章节摘要:静态界面到可用 App 的距离,是一整套事件系统。本章从监听器模式的原理讲起,覆盖点击、长按、触摸与键盘四类输入,最后用 Toast 与 Snackbar 补上"App 听到了"的反馈闭环。猜数字 App 在本章彻底"活"过来。
骨架立好、控件齐整,但点"提交"毫无反应——App 是聋的。让界面听见手指,先要理解 Android 的事件分发是一条从屏幕到你的代码的消息链;然后按输入类型逐个接线:单击是最常用的触发,长按可以藏彩蛋(长按标题显示答案范围),触摸事件能拿到指尖滑动的原始轨迹,软键盘的"完成"键则让单手操作不碰按钮也能提交。每接一根线,都补一节"用户怎么知道 App 听到了"——Toast 与 Snackbar 的取舍、时机与礼仪,反馈设计的分寸感就在这里长出来。
本章的换脑时刻在 5.1:lambda 不是语法糖装饰,而是"把你的代码交给系统,在未来的某一刻回调"这一异步思想的入门礼。理解 setOnClickListener { } 里那对花括号是"现在注册、稍后执行",第 8 章读 Logcat 时的回调栈、乃至日后一切异步 API 都会顺理成章。第二个落点是反馈的克制:每秒弹 Toast 是灾难,全程无反馈是冷暴力,中间那条线由场景决定——只看不点的信息用 Toast,可撤销的动作用 Snackbar,必须决策的用对话框。
一次点击从指尖到回调的旅程:
界面能听会说了,但长相还是"系统默认款"。第 6 章进入化妆间:资源目录的组织方式、从 Style 到 Theme 的复用阶梯、颜色与尺寸的统一管理。
可考核条目包括:说出监听器模式的注册与回调两拍并指出 lambda 里代码的执行时机、解释 onTouch 返回 true 的消费语义、为控件同时接单击与长按且互不打架、用 EditorInfo 处理键盘动作提交、拦截返回键并保留 super 出口、按三档强度选择 Toast Snackbar 与对话框并写出带撤销动作的 Snackbar、说出连点防叠泡的写法。自查题留一道综合的:把猜数字 App 的"提交"路径从手指触下到界面更新,用自己的话讲一遍完整旅程——讲得顺,说明事件系统在你脑里已经成图;卡壳的地方,就是该回炉的小节。
另一个贯穿提醒:每接一根新的事件线,都同步想它的"无障碍别名"——点击有 performClick、长按有 tooltip、反馈文案要经得起朗读。事件章的功课做完,App 对所有用户都活了,而不只是对手指灵活的用户活了。