多行变一行

比如说开发一个简单的计算器应用程序,需要定义0-9的数字按钮,第一次就习惯性地写出了如下代码:

  1. Button btn0;
  2. Button btn1;
  3. Button btn2;
  4. Button btn3;
  5. Button btn4;
  6. Button btn5;
  7. Button btn6;
  8. Button btn7;
  9. Button btn8;
  10. Button btn9;

其中这种 写法占用的屏幕空间很大,可读性并不好,我们可以优化成一行:

  1. Button btn0,btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9;

这种同一类控件写在一行,看起来就简洁很多了。

提炼函数

定义好数字按钮之后,我们就需要在OnCreate的方法中进行赋值,通常写法如下:

  1. btn0 = (Button) findViewById(R.id.btn0);
  2. btn1 = (Button) findViewById(R.id.btn1);
  3. btn2 = (Button) findViewById(R.id.btn2);
  4. btn3 = (Button) findViewById(R.id.btn3);
  5. btn4 = (Button) findViewById(R.id.btn4);
  6. btn5 = (Button) findViewById(R.id.btn5);
  7. btn6 = (Button) findViewById(R.id.btn6);
  8. btn7 = (Button) findViewById(R.id.btn7);
  9. btn8 = (Button) findViewById(R.id.btn8);
  10. btn9 = (Button) findViewById(R.id.btn9);

这样写也还好,不错我们还是可以优化一下的。

Andriod Studio 提供了非常好的提炼函数的操作。

选中以上代码,右键菜单或者顶部菜单中依次选择“Refactor”->"Extract"->"Method"

然后在弹出的对话框中输入“initButton”,点击确定

这堆代码对被一行代码取代了:

  1. initButton();

Andriod Studio会自动将这堆代码提炼成initButton()方法:

  1. private void initButton() {
  2. btn0 = (Button) findViewById(R.id.btn0);
  3. btn1 = (Button) findViewById(R.id.btn1);
  4. btn2 = (Button) findViewById(R.id.btn2);
  5. btn3 = (Button) findViewById(R.id.btn3);
  6. btn4 = (Button) findViewById(R.id.btn4);
  7. btn5 = (Button) findViewById(R.id.btn5);
  8. btn6 = (Button) findViewById(R.id.btn6);
  9. btn7 = (Button) findViewById(R.id.btn7);
  10. btn8 = (Button) findViewById(R.id.btn8);
  11. btn9 = (Button) findViewById(R.id.btn9);
  12. }

运用提炼函数之后,onCreate方法就更加简洁,可读性也更好了。

Andriod学习笔记1:代码优化总结1的更多相关文章

  1. Andriod学习笔记 - 参考

    Andriod学习笔记 - 参考 自定义实现圆形播放进度条(android,飞一般的感觉) 盘点Android开发者必备的十大开发工具

  2. Andriod学习笔记5:通过NDK在C++中实现日志输出

    开发环境 android studio 1.5.1 实现步骤 新建android项目 项目名称为AndroidCLog,选择Empty Activity模板,其他默认即可. 下载配置ndk 在项目上右 ...

  3. Andriod学习笔记4:mac下搭建 Eclipse+CDT 集成开发环境

    下载CDT 从eclipse官网下载最新的Eclipse IDE for C/C++ Developers,例如eclipse-cpp-mars-1-macosx-cocoa-x86_64.tar.g ...

  4. Andriod学习笔记3:Mac 平台下搭建 CLion 集成开发环境

    1. 安装Xcode 通过App store或者下载安装Xcode. 安装完成之后,最好启动一下Xcode,否则可能会报"Error:The C compiler "/usr/bi ...

  5. Andriod学习笔记2:“Your content must have a ListView whose id attribute is 'android.R.id.list'”问题的解决办法

    问题描述 activity_main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <Lin ...

  6. WebSocket学习笔记IE,IOS,Android等设备的兼容性问

    WebSocket学习笔记IE,IOS,Android等设备的兼容性问 一.背景 公司最近准备将一套产品放到Andriod和IOS上面去,为了统一应用的开发方式,决定用各平台APP嵌套一个HTML5浏 ...

  7. Nodejs学习笔记(十六)--- Pomelo介绍&入门

    目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json 配置servers.json ...

  8. Nodejs学习笔记(十六)—Pomelo介绍&入门

    前言&介绍 Pomelo:一个快速.可扩展.Node.js分布式游戏服务器框架 从三四年前接触Node.js开始就接触到了Pomelo,从Pomelo最初的版本到现在,总的来说网易出品还算不错 ...

  9. 我的Android进阶之旅------>Android中编解码学习笔记

    编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等 ...

随机推荐

  1. angular指令深度学习篇

    angular指令深度学习-过滤器 limitTo ... <body ng-app="app" > <div ng-controller="myCtr ...

  2. 【BZOJ-3553】三叉神经树 树链剖分

    3553: [Shoi2014]三叉神经树 Time Limit: 160 Sec  Memory Limit: 256 MBSubmit: 347  Solved: 112[Submit][Stat ...

  3. 最简单的JavaScript模板引擎

    在小公司待久了感觉自己的知识面很小,最近逛博客园和一些技术网站看大家在说JavaScript模版引擎的事儿,完全没有概念,网上一搜这是08年开始流行起来的...本来以为这是很高深的知识,后来在网上看到 ...

  4. TYVJ1338 QQ农场

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Sandytea前段时间沉迷于QQ农场中……一天夜里,他梦见来到好友X的农场上…… 描述 这个农场和游戏中略有 ...

  5. Git for Windows - The Program can't start because libiconv2.dll is missing

    今天在新装的win10 预览版上面,发现git不能启动了,提示信息主要是: The Program can't start because libiconv2.dll is missing 于是我在网 ...

  6. hibernate-cascade级联关系

    <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBL ...

  7. 挣值管理(PV、EV、AC、SV、CV、SPI、CPI) 记忆

    挣值管理法中的PV.EV.AC.SV.CV.SPI.CPI这些英文简写相信把大家都搞得晕头转向的.在挣值管理法中,需要记忆理解的有三个参数:PV.AC.EV.     PV:计划值,在即定时间点前计划 ...

  8. AE开发使用内存图层

    AE开发中,有时需要从磁盘中读取一些文件信息如坐标点转为图层并进行分析,此过程并不需要坐标点入库之类的操作,就可以创建一个内存图层解决问题.创建内存图层需要用到InMemoryWorkspaceFac ...

  9. Java学习笔记12

    循环 打印一个字符串(例如: "Welcome to Java!") 100次,就需要吧下面的输出语句重复写100遍,这是相当繁琐的: System.out.println(&qu ...

  10. UVALive 3644 X-Plosives

    X-Plosives Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu [Submit]   ...