《Android Studio实战 快速、高效地构建Android应用》--二、在Android Studio中编程
代码折叠
Ctrl+数字加号展开光标处已折叠代码块Ctrl+数字减号折叠光标处已展开代码块Ctrl+Shift+数字加号展开窗口中全部代码Ctrl+Shift+数字减号折叠窗口中全部代码
注释代码
选中代码示例

第一种注释
快捷键:
Ctrl+/import java.util.ArrayList;
//import java.util.List;
//
//public class Sandbox {
// public List<String> mGreetings = new ArrayList<>();
}
第二种注释
快捷键:
Ctrl+Shift+/import java.util.ArrayList;
import ja/*va.util.List; public class Sandbox {
public List<String>*/ mGreetings = new ArrayList<>();
}
代码生成
代码生成能生成各种方法,包括构造函数、getter、setter、equals()、hashCode()、toString等,光标置于类作用域中,通过Alt+Insert调出如下菜单选择生成相应代码

需要配置忽略成员名称的前缀m和s,配置路径File\Settings\Code Style\Java\Code Generation
示例代码:
public class Sandbox{
public List<String> mGreetings = new ArrayList<>();
}
生成构造函数
选择Constructor,接着选择一个类成员作为参数,select none选择无参构造函数

getter、setter
Java类通常是经过封装的,类成员通常为私有的,通过访问器getter、设置器setter提供这些成员的共有接口,生成方法名时,生成的代码忽略了m前缀
public class Sandbox {
public List<String> mGreetings = new ArrayList<>();
public List<String> getGreetings() {
return mGreetings;
}
public void setGreetings(List<String> greetings) {
mGreetings = greetings;
}
}
重载方法
假设让Sandbox派生自RectShape(public class Sandbox extends RectShape),按Alt+Insert选择Override Methods重载Shpae类的hasAlpha()方法

@Override
public boolean hasAlpha() {
return true;
}
从Java 5 版本开始约定使用@Override来注解重载方法,告知编译器同时验证方法的名称和签名,以确保方法被重载
toString()方法
@Override
public String toString() {
return "Sandbox{" +
"mGreetings=" + mGreetings +
'}';
}
代理方法
选择Delegate Methods,选择mGreetings:List,有很多方法可以代理,按住Ctrl多选

插入动态模板
Android Studio的模板是作用域敏感的。
自己创建
导航至File\Settings\Live Templates选择Plain模板组,单击右上角绿色加号并选择Live Templates,填写蓝框三处并点击define,勾选java,点击应用。

| 选项 | 快捷键 | 描述 |
|---|---|---|
| Insert Live Templates | Ctrl+J |
激活作用域敏感的Live Templates列表,将会在文档中插入模板代码 |
| Surround with Live Templates | Ctrl+Alt+J |
激活作用域敏感的Surround with Live Templates列表,将会使用一个作用域敏感的动态模板包裹选中内容 |
使用
方法1.输入cb即可使用自己定义的模板

///////////////////////////////
//
//////////////////////////////
方法2.选中相应内容按Ctrl+Alt+J,相应内容会作为变量被模板包裹

///////////////////////////////
// 我想被注释
//////////////////////////////
移动代码
两种移动方式:Move Statement 和 Move Line
Move Statement
将光标置于想要移动的块的起始行(带有开始花括号的那行)中的任意位置,按Ctrl+Shift+↑|↓,Move Statement的特点就是移动的同时会考虑边界和作用域
Move Line
将光标置于想要移动的行,按Alt+Shift+↑|↓
《Android Studio实战 快速、高效地构建Android应用》--二、在Android Studio中编程的更多相关文章
- 《Android Studio实战 快速、高效地构建Android应用》--五、备忘录实验(1/2)
通过开发App熟悉Android Studio的用法 开发一款用于管理备忘事项列表的App,核心功能: 创建.删除备忘 将某些备忘标记为重要(左侧带颜色标签突出显示) 涉及:操作栏菜单.上下文菜单.用 ...
- 《Android Studio实战 快速、高效地构建Android应用》--四、Git入门
Git版本控制系统(VCS)是分布式的,仓库的每一个副本均包含项目的完整历史 安装Git 下载 下载地址:http://git-scm.com/downloads 选择适合自己操作系统的来下载 如果下 ...
- 《Android Studio实战 快速、高效地构建Android应用》--三、重构代码
要成为高效的Android程序员,需要头脑灵活,能够在开发.调试和测试的过程中重构代码,重构代码最大的风险是可能会引入意外的错误,Android Studio通过分析某些具有危险性的重构操作来降低风险 ...
- 《Android Studio实战 快速、高效地构建Android应用》--Android Studio操作
前言 摩尔定律:CPU的处理能力大约18个月翻一倍 Android&Java:想要在Android Studio中开发Android App,必须以充分了解Java为前提(Java流行的原因: ...
- 【Android开发日记】之入门篇(十二)——Android组件间的数据传输
组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...
- Android lifecycle 实战及使用进阶
版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/gdutxiaoxu/article/det ...
- 【Android】如何快速构建Android Demo
[Android]如何快速构建Android Demo 简介 在 Android 学习的过程中,经常需要针对某些项目来写一些测试的例子,或者在做一些 demo 的时候,都需要先写 Activity 然 ...
- 如何快速高效地完成一个Android项目?
本文的内容有别于之前文章中纯技术的探讨,会从业务逻辑.技术.团队和方法论的角度探讨如何快速高效地完成一个Android项目.当然,快速高效是有前提的,第一,本文依然是从研发的角度来谈如何把控项目的,而 ...
- Android NDK开发 Android Studio使用新的Gradle构建工具配置NDK环境(一)
本文主要讲述了如何如何在Android Studio使用新的Gradle构建工具配置NDK环境,现在把相关的步骤整理出来分享给Android程序员兄弟们,希望给他们在配置NDK环境时带来帮助. 从An ...
随机推荐
- spring boot 整合freemaker
前端最好使用vue.js 这里是freemaker 整合spring boot 1.编写pom文件: <dependencies> <dependency> <group ...
- 「Vijos 1285」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法药水
佳佳的魔法药水 背景 发完了k张照片,佳佳却得到了一个坏消息:他的MM得病了!佳佳和大家一样焦急万分!治好MM的病只有一种办法,那就是传说中的0号药水--怎么样才能得到0号药水呢?你要知道佳佳的家境也 ...
- 惊呆了!Java程序员最常犯的错竟然是这10个
和绝大多数的程序员一样,我也非常的宅.周末最奢侈的享受就是逛一逛技术型网站,比如说 programcreek,这个小网站上有一些非常有意思的主题.比如说:Java 程序员最常犯的错竟然是这 10 个, ...
- js菜单栏切换
先来看看需要实现的需求: 这是某购物网站上经常看到的效果 我们把网页的模型抽象出来,下面是我实现的效果图: 源代码仅供大家参考,具体如下: <!DOCTYPE html> <html ...
- OpenLayers 笔记
1.加载ArcGIS MapServer var pipeLayer=new ol.layer.Tile({ extent: [11827395.404512288,3049293.321033439 ...
- 动态内存分配(C++)
C++中的动态内存分配 C++中通过new关键字进行动态内存分配 C++中的动态内存申请是基于类型进行的 delet关键字用于内存释放 //变量申请 Type*pointer = new Type; ...
- APICloud开发者进阶之路 |纯手工编写日程表功能
本文出自APICloud官方论坛, 感谢论坛版主 赵永亮 的分享. 最近看论坛内关于极光推送的问题有很多, 本想写一个关于极光的详细教程的,无奈已经有很多大牛分享过了,所以只得纯手工写了一个日程表,可 ...
- Mysql连接出现时区问题
错误提示: The server time zone value '¥x¥_¼Ð·Ç®É¶¡' is unrecognized or represents more than one time zon ...
- Python工具类(一)—— 操作Mysql数据库
如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...
- redis 数据类型之字典
1.hset hset(name, key, value) # 参数: # name,redis的name # key,name对应的hash中的key # value,nam ...
