只看文字文档是无法快速上手的,所以打算写一个简易App上手,快速学习一些简单的知识点,循环渐进。本次参照Mac系统的计算器程序,模拟一个差不多的功能出来。
UI布局
参考一下我们的示例,感觉可以使用网格布局达到我们想要的效果,布局相关可以参考这里:
网格布局
使用用单纯的网格布局,先做出一个想要的整体结构:
对应代码:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="1" android:columnCount="4" android:rowCount="6"> <TextView android:id="@+id/tv_result" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="0" android:textSize="80sp" android:layout_columnSpan="4" /> <TextView android:id="@+id/btn_ac" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="AC"/> <TextView android:id="@+id/btn_the" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="+/-"/> <TextView android:id="@+id/btn_percent" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="%"/> <TextView android:id="@+id/btn_divide" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="÷"/> <TextView android:id="@+id/btn_7" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="7"/> <TextView android:id="@+id/btn_8" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="8"/> <TextView android:id="@+id/btn_9" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="9"/> <TextView android:id="@+id/btn_multiplication" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="x"/> <TextView android:id="@+id/btn_4" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="4"/> <TextView android:id="@+id/btn_5" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="5"/> <TextView android:id="@+id/btn_6" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="6"/> <TextView android:id="@+id/btn_subtraction" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="-"/> <TextView android:id="@+id/btn_1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="1"/> <TextView android:id="@+id/btn_2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="2"/> <TextView android:id="@+id/btn_3" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="3"/> <TextView android:id="@+id/btn_add" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="+"/> <TextView android:id="@+id/btn_0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_columnSpan="2" android:gravity="center" android:textSize="20sp" android:text="0"/> <TextView android:id="@+id/btn_dot" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="."/> <TextView android:id="@+id/btn_equal" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:textSize="20sp" android:text="="/> </GridLayout> </LinearLayout>
加入颜色
结构有了,现在需要加入不同的颜色,还有间距,让其看起来好看一些:
优化布局
但这时发现在长一点的手机上,显然看起来不是很好看,显示数字的地方太小了,按钮占比又还很大,由于外部容器使用的是LinearLayout布局,所以这里可以做一点调整,我们可以使内容显示区域和键盘区域平分,这样就会美观一些,稍微做了一下改造,把数字显示区域从GridLayout中提出,单独用一个约束布局(为了让里面的文字右下角显示和一些其他额外布局)包裹起来,并且设置各自的权重layout_weight="1",这样就达到了我们想要的效果:
完整代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#333" tools:context=".MainActivity"> <androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:paddingLeft="10dp" android:paddingRight="10dp" tools:ignore="MissingConstraints"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" android:gravity="center"> <TextView android:id="@+id/tv_result" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="0" android:textSize="80sp" android:textColor="#eee" /> </LinearLayout> </androidx.constraintlayout.widget.ConstraintLayout> <GridLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_weight="1" android:columnCount="4" android:rowCount="6"> <TextView android:id="@+id/btn_ac" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#444" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:text="AC"/> <TextView android:id="@+id/btn_the" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#444" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:text="+/-"/> <TextView android:id="@+id/btn_percent" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#444" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:text="%"/> <TextView android:id="@+id/btn_divide" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#f95" android:textColor="#eee" android:textSize="20sp" android:text="÷"/> <TextView android:id="@+id/btn_7" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="7"/> <TextView android:id="@+id/btn_8" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="8"/> <TextView android:id="@+id/btn_9" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="9"/> <TextView android:id="@+id/btn_multiplication" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#f95" android:textColor="#eee" android:textSize="20sp" android:layout_marginTop="1dp" android:text="x"/> <TextView android:id="@+id/btn_4" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="4"/> <TextView android:id="@+id/btn_5" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="5"/> <TextView android:id="@+id/btn_6" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="6"/> <TextView android:id="@+id/btn_subtraction" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#f95" android:textColor="#eee" android:textSize="20sp" android:layout_marginTop="1dp" android:text="-"/> <TextView android:id="@+id/btn_1" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="1"/> <TextView android:id="@+id/btn_2" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="2"/> <TextView android:id="@+id/btn_3" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="3"/> <TextView android:id="@+id/btn_add" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#f95" android:textColor="#eee" android:textSize="20sp" android:layout_marginTop="1dp" android:text="+"/> <TextView android:id="@+id/btn_0" android:layout_columnWeight="1" android:layout_rowWeight="1" android:layout_columnSpan="2" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="0"/> <TextView android:id="@+id/btn_dot" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#555" android:textColor="#eee" android:textSize="20sp" android:layout_marginRight="1dp" android:layout_marginTop="1dp" android:text="."/> <TextView android:id="@+id/btn_equal" android:layout_columnWeight="1" android:layout_rowWeight="1" android:gravity="center" android:background="#f95" android:textColor="#eee" android:textSize="20sp" android:layout_marginTop="1dp" android:text="="/> </GridLayout> </LinearLayout>
Activity编写
前端的简易UI布局写好了,现在我们进行Activity的编写,默认的activity_main.xml对应的Activity是MainActivity.java,可以从布局文件里的根节点的tools:context=".MainActivity"看出。
Activity的生命周期这些,可以参考这里
大致逻辑是这样:
- 定义一个计算的动作类,用来定义每个计算动作;
- 通过自带的方法findViewById,获取到对应的控件;
- 通过setBackgroundColor为每一个按钮绑定上对应的事件;
- 通过逻辑计算,把计算出来的结果显示到界面上;
- 按钮的时候,做一定的交互处理,如加减乘除的选中效果;
一、ComputeAction类如下:
public class ComputeAction { /** * 无 */ public static final int NONE=0; /** * 清空 */ public static final int AC=1; /** * 取反 */ public static final int THE=2; /** * 百分比 */ public static final int PERCENT=3; /** * 除 */ public static final int DIVIDE=4; /** * 乘 */ public static final int MULTIPLICATION=5; /** * 减 */ public static final int SUBTRACTION=6; /** * 加 */ public static final int ADD=7; /** * 小数点 */ public static final int DOT=8; /** * 等于 */ public static final int EQUAL=9; }
二、获取到所有按钮和控件,由于数字按钮有统一性,所以我使用一个List来储存它,这样的话可以减少一定量的代码行数:
private void initView(){ tvResult=findViewById(R.id.tv_result);//结果显示组件 btnAc=findViewById(R.id.btn_ac);//清空按钮 btnThe=findViewById(R.id.btn_the);//取反按钮 btnPercent=findViewById(R.id.btn_percent);//百分比按钮 btnDivide=findViewById(R.id.btn_divide);//除 btnMultiplication=findViewById(R.id.btn_multiplication);//乘 btnSubtraction=findViewById(R.id.btn_subtraction);//减 btnAdd=findViewById(R.id.btn_add);//加 btnEqual=findViewById(R.id.btn_equal);//等 btnDot=findViewById(R.id.btn_dot);//小数点 //数字按钮,放到List里 listNumber.add(findViewById(R.id.btn_0)); listNumber.add(findViewById(R.id.btn_1)); listNumber.add(findViewById(R.id.btn_2)); listNumber.add(findViewById(R.id.btn_3)); listNumber.add(findViewById(R.id.btn_4)); listNumber.add(findViewById(R.id.btn_5)); listNumber.add(findViewById(R.id.btn_6)); listNumber.add(findViewById(R.id.btn_7)); listNumber.add(findViewById(R.id.btn_8)); listNumber.add(findViewById(R.id.btn_9)); }
三、然后给对应的按钮,绑定对应的事件:
private void initListener(){ //循环绑定数字按钮 for(TextView btnNumber:listNumber) { btnNumber.setOnClickListener((View view)->{ handleNumberClick(Integer.parseInt(btnNumber.getText().toString()));//数字输入 }); } btnAdd.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.ADD); }); btnSubtraction.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.SUBTRACTION); }); btnMultiplication.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.MULTIPLICATION); }); btnDivide.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.DIVIDE); }); btnEqual.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.EQUAL); }); btnAc.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.AC); }); btnPercent.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.PERCENT); }); btnThe.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.THE); }); btnDot.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.DOT); }); }
四、计算逻辑
简易版本的计算逻辑,实现了基本的计算,但存在一些bug后续再进行完善。
输入数字,根据一个变量[clearInput]来判断是否是拼接数字还是清空数字:
private void handleNumberClick(Integer number){ String strOldResult=tvResult.getText().toString(); if(!clearInput) { //当前没有按下计算按钮,显示的数字累加即可 if(strOldResult.equals("0")) { strOldResult=""; } tvResult.setText(strOldResult+number.toString()); clearInput=false; return; } tvResult.setText(number+""); clearInput=false; }
输入运算符,进行简单的逻辑运算:
private Double handleCompute(Double oldNumber,Double number,int action){ BigDecimal hisNumber=new BigDecimal(oldNumber);//历史结果 BigDecimal newNumber=new BigDecimal(number);//输入结果 BigDecimal result=new BigDecimal(0); if(action==ComputeAction.ADD) { //加 result=hisNumber.add(newNumber); } else if(action==ComputeAction.SUBTRACTION) { //减 result=hisNumber.subtract(newNumber); } else if(action==ComputeAction.MULTIPLICATION) { //乘 result=hisNumber.multiply(newNumber); } else if(action==ComputeAction.DIVIDE) { //除 result=hisNumber.divide(newNumber); } else if(action==ComputeAction.AC) { //ac } else if(action==ComputeAction.THE){ //正反 } else { result=hisNumber; } result=result.setScale(5,BigDecimal.ROUND_HALF_UP); return result.doubleValue(); }
五、设置一个简单的交互效果,通过改变颜色实现,注意,这里的颜色需要先定义到values/colors.xml里才行
colors.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="black">#FF000000</color> <color name="white">#FFFFFFFF</color> <color name="black2">#444</color> <color name="orange">#ff9955</color> <color name="orange2">#ff8800</color> </resources>
可以通过函数getColor获取到定义在xml里的颜色色值
private void activeBtn(int action){ int defColor=getColor(R.color.orange); btnDivide.setBackgroundColor(defColor); btnMultiplication.setBackgroundColor(defColor); btnSubtraction.setBackgroundColor(defColor); btnAdd.setBackgroundColor(defColor); if(action==ComputeAction.ADD) { //加 btnAdd.setBackgroundColor(getColor(R.color.orange2)); } else if(action==ComputeAction.SUBTRACTION) { //减 btnSubtraction.setBackgroundColor(getColor(R.color.orange2)); } else if(action==ComputeAction.MULTIPLICATION) { //乘 btnMultiplication.setBackgroundColor(getColor(R.color.orange2)); } else if(action==ComputeAction.DIVIDE) { //除 btnDivide.setBackgroundColor(getColor(R.color.orange2)); } }
这样,一个简易的计算器App就实现了
完整的代码
package com.liujto.androiddemo; import androidx.appcompat.app.AppCompatActivity; import android.annotation.SuppressLint; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import java.io.Console; import java.math.BigDecimal; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class MainActivity extends AppCompatActivity { private DecimalFormat decimalFormat = new DecimalFormat("###################.###########"); /** * 累计计算的值 */ private Double computeResult=null; /** * 计算动作 */ private int action=ComputeAction.NONE; /** * 是否需要清空输入 */ private boolean clearInput=true; /** * 当前界面展示的值 */ private TextView tvResult; private TextView btnAc; private TextView btnThe; private TextView btnPercent; private TextView btnDivide; private TextView btnMultiplication; private TextView btnSubtraction; private TextView btnAdd; private TextView btnDot; private TextView btnEqual; private List<TextView> listNumber=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initListener(); } //获取控件 private void initView(){ tvResult=findViewById(R.id.tv_result);//结果显示组件 btnAc=findViewById(R.id.btn_ac);//清空按钮 btnThe=findViewById(R.id.btn_the);//取反按钮 btnPercent=findViewById(R.id.btn_percent);//百分比按钮 btnDivide=findViewById(R.id.btn_divide);//除 btnMultiplication=findViewById(R.id.btn_multiplication);//乘 btnSubtraction=findViewById(R.id.btn_subtraction);//减 btnAdd=findViewById(R.id.btn_add);//加 btnEqual=findViewById(R.id.btn_equal);//等 btnDot=findViewById(R.id.btn_dot);//小数点 //数字按钮,放到List里 listNumber.add(findViewById(R.id.btn_0)); listNumber.add(findViewById(R.id.btn_1)); listNumber.add(findViewById(R.id.btn_2)); listNumber.add(findViewById(R.id.btn_3)); listNumber.add(findViewById(R.id.btn_4)); listNumber.add(findViewById(R.id.btn_5)); listNumber.add(findViewById(R.id.btn_6)); listNumber.add(findViewById(R.id.btn_7)); listNumber.add(findViewById(R.id.btn_8)); listNumber.add(findViewById(R.id.btn_9)); } //绑定事件 private void initListener(){ //循环绑定数字按钮 for(TextView btnNumber:listNumber) { btnNumber.setOnClickListener((View view)->{ handleNumberClick(Integer.parseInt(btnNumber.getText().toString()));//数字输入 }); } btnAdd.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.ADD); }); btnSubtraction.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.SUBTRACTION); }); btnMultiplication.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.MULTIPLICATION); }); btnDivide.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.DIVIDE); }); btnEqual.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.EQUAL); }); btnAc.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.AC); }); btnPercent.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.PERCENT); }); btnThe.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.THE); }); btnDot.setOnClickListener((View view)->{ handleComputeAction(ComputeAction.DOT); }); } /** * 输入数字 */ private void handleNumberClick(Integer number){ String strOldResult=tvResult.getText().toString(); if(!clearInput) { //当前没有按下计算按钮,显示的数字累加即可 if(strOldResult.equals("0")) { strOldResult=""; } tvResult.setText(strOldResult+number.toString()); clearInput=false; return; } tvResult.setText(number+""); clearInput=false; } /** * 输入运算符 */ private void handleComputeAction(int action) { activeBtn(action);//处理按钮点击激活效果 String strOldResult=tvResult.getText().toString();//当前屏幕输入的值 Double oldResult=Double.parseDouble(strOldResult);//当前屏幕输入的数值 if(this.action==ComputeAction.NONE) { //不存在上一个动作 保存当前输入的值 this.computeResult=oldResult; } if(action==ComputeAction.ADD || action==ComputeAction.SUBTRACTION ||action==ComputeAction.MULTIPLICATION ||action==ComputeAction.DIVIDE) { //加减乘除运算 if(this.action==ComputeAction.NONE) { //不存在上一个动作 保存当前输入的值 this.computeResult=oldResult; } else { //存在上一个动作,使用上一个动作计算一次 this.computeResult=handleCompute(this.computeResult,oldResult,this.action); tvResult.setText(decimalFormat.format(computeResult)); } this.action=action; clearInput=true; } else if(action==ComputeAction.EQUAL) { //等 this.computeResult=handleCompute(this.computeResult,oldResult,this.action); tvResult.setText(decimalFormat.format(computeResult)); this.action=ComputeAction.NONE; clearInput=true; } else if(action==ComputeAction.PERCENT) { //百分比 this.computeResult=handlePercent(this.computeResult); tvResult.setText(decimalFormat.format(computeResult)); this.action=ComputeAction.NONE; } else if(action==ComputeAction.THE) { //取反 this.computeResult=-this.computeResult; tvResult.setText(decimalFormat.format(computeResult)); } else if(action==ComputeAction.DOT){ //小数点 if(!strOldResult.contains(".")) { //加入小数点 tvResult.setText(strOldResult+"."); } else { //不处理 } } else if(action==ComputeAction.AC) { //清空历史 this.computeResult=0.0; tvResult.setText(decimalFormat.format(computeResult)); this.action=ComputeAction.NONE; clearInput=true; } } /** * 计算操作 */ private Double handleCompute(Double oldNumber,Double number,int action){ if(oldNumber==null) { oldNumber=0.0; } if(number==null) { number=0.0; } BigDecimal hisNumber=new BigDecimal(oldNumber);//历史结果 BigDecimal newNumber=new BigDecimal(number);//输入结果 BigDecimal result=new BigDecimal(0); if(action==ComputeAction.ADD) { //加 result=hisNumber.add(newNumber); } else if(action==ComputeAction.SUBTRACTION) { //减 result=hisNumber.subtract(newNumber); } else if(action==ComputeAction.MULTIPLICATION) { //乘 result=hisNumber.multiply(newNumber); } else if(action==ComputeAction.DIVIDE) { //除 result=hisNumber.divide(newNumber); } else if(action==ComputeAction.AC) { //ac } else if(action==ComputeAction.THE){ //正反 } else { result=hisNumber; } result=result.setScale(5,BigDecimal.ROUND_HALF_UP); return result.doubleValue(); } /** * 百分比计算 */ private double handlePercent(Double number){ return (new BigDecimal(number)).divide(new BigDecimal(100)).setScale(5,BigDecimal.ROUND_HALF_UP).doubleValue(); } private void activeBtn(int action){ int defColor=getColor(R.color.orange); btnDivide.setBackgroundColor(defColor); btnMultiplication.setBackgroundColor(defColor); btnSubtraction.setBackgroundColor(defColor); btnAdd.setBackgroundColor(defColor); if(action==ComputeAction.ADD) { //加 btnAdd.setBackgroundColor(getColor(R.color.orange2)); } else if(action==ComputeAction.SUBTRACTION) { //减 btnSubtraction.setBackgroundColor(getColor(R.color.orange2)); } else if(action==ComputeAction.MULTIPLICATION) { //乘 btnMultiplication.setBackgroundColor(getColor(R.color.orange2)); } else if(action==ComputeAction.DIVIDE) { //除 btnDivide.setBackgroundColor(getColor(R.color.orange2)); } } }
Comments NOTHING