原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6801695
今天Review代码,看到了一串很“漂亮”的代码。这里把代码改了一下,贴给新手们,作为一个教训吧。
漂亮的意思,是有很工整的缩进。
- package com.hoperun;
- import android.view.View;
- import android.view.View.OnClickListener;
- /**
- * 数字键盘监听器
- */
- public class NumListener implements OnClickListener {
- public void onClick(View v) {
- if (v.equals(btnNum0)) {
- //按键0
- } else {
- if (v.equals(btnNum1)) {
- //按键1
- } else {
- if (v.equals(btnNum2)) {
- //按键2
- } else {
- if (v.equals(btnNum3)) {
- //按键3
- } else {
- if (v.equals(btnNum4)) {
- //按键4
- } else {
- if (v.equals(btnNum5)) {
- //按键5
- } else {
- if (v.equals(btnNum6)) {
- //按键6
- } else {
- if (v.equals(btnNum7)) {
- //按键7
- } else {
- if (v.equals(btnNum8)) {
- //按键8
- } else {
- if (v.equals(btnNum9)) {
- //按键9
- } else {
- if (v.equals(btnNumAdd)) {
- //按键加法
- } else {
- if (v.equals(btnNumSubtraction)) {
- //按键减法
- } else {
- if (v.equals(btnNumEquals)) {
- //按键等于
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
其实,这么写是完全没有必要的。这么多的else,其实可以叠在else if里面,如下:
- package com.hoperun;
- import android.view.View;
- import android.view.View.OnClickListener;
- /**
- * 数字键盘监听器
- */
- public class NumListener implements OnClickListener {
- public void onClick(View v) {
- if (v.equals(btnNum0)) {
- //按键0
- } else { if (v.equals(btnNum1)) {
- //按键1
- } else if (v.equals(btnNum2)) {
- //按键2
- } else if (v.equals(btnNum3)) {
- //按键3
- } else if (v.equals(btnNum4)) {
- //按键4
- } else if (v.equals(btnNum5)) {
- //按键5
- } else if (v.equals(btnNum6)) {
- //按键6
- } else if (v.equals(btnNum7)) {
- //按键7
- } else if (v.equals(btnNum8)) {
- //按键8
- } else if (v.equals(btnNum9)) {
- //按键9
- } else if (v.equals(btnNumAdd)) {
- //按键加法
- } else if (v.equals(btnNumSubtraction)) {
- //按键减法
- } else if (v.equals(btnNumEquals)) {
- //按键等于
- }
- }
- }
其实这个效率不高。其实传入的参数View,就是被按住的那个按钮,不需要用equals判断,直接用“ == ”来判断就可以了。
当然,最好的还不是用“ == ”,而是用switch - case.
- package com.hoperun;
- import android.view.View;
- import android.view.View.OnClickListener;
- /**
- * 数字键盘监听器
- */
- public class NumListener implements OnClickListener {
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.key_0:
- //按键0
- break;
- case R.id.key_1:
- //按键1
- break;
- case R.id.key_2:
- //按键2
- break;
- case R.id.key_3:
- //按键3
- break;
- case R.id.key_4:
- //按键4
- break;
- case R.id.key_5:
- //按键0
- break;
- case R.id.key_6:
- //按键6
- break;
- case R.id.key_7:
- //按键7
- break;
- case R.id.key_8:
- //按键8
- break;
- }
- }
- }
仅给新人学习,高手勿喷。