本文实例为大家分享了android计算器实现加减乘除的具体代码,供大家参考,具体内容如下
注:以下计算器只注重实现功能,不考虑其他BUG,只有两位整数的算法运算,适合新手
1、实现思想
将从键盘得到的数值放在一个字符数组中,以运算符号(+-/)为分割点,将两个数值分割开,进行算法运算。*
2、难点
如何判断是否为符号?+ - ×/
记录符号的位置?
3、步骤:
1、得到键盘输入的值
2、将值存放在一个字符数组中
3、遍历数组中的每个数,如果找到算法符号,记录下算法符号的位置。(要点,从0开始)
4、将算法符号前面的数放在一个定义的int型数中
5、同理
6、判断是加减乘除的哪一个方法,然后进行简单的运算。
4、代码
i:布局:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="1" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/etResult" android:layout_weight="0.05" android:textSize="25dp" android:paddingTop="10dp" android:gravity="bottom" android:hint="0.0" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="0.8"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:weightSum="1"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="C" android:textSize="25dp" android:background="@color/colorWhite" android:id="@+id/btnQingchu" android:layout_weight="0.5" /> <Button android:layout_width="235dp" android:layout_height="wrap_content" android:text="←" android:textSize="25dp" android:background="@color/colorBlue" android:id="@+id/btnHuishan" android:layout_weight="0.5"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn7" android:text="7" android:textSize="25dp" android:layout_weight="0.25" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn8" android:text="8" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn9" android:text="9" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnChu" android:text="÷" android:textSize="25dp" android:background="@color/colorBlue" android:layout_weight="0.25"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn4" android:text="4" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn5" android:text="5" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn6" android:text="6" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnCheng" android:text="×" android:textSize="25dp" android:background="@color/colorBlue" android:layout_weight="0.25"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn1" android:text="1" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn2" android:text="2" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn3" android:text="3" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnJian" android:text="-" android:textSize="25dp" android:background="@color/colorBlue" android:layout_weight="0.25"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn0" android:text="0" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnDian" android:text="." android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnDengyu" android:text="=" android:textSize="25dp" android:layout_weight="0.25"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btnJia" android:text="+" android:textSize="25dp" android:background="@color/colorBlue" android:layout_weight="0.25"/> </LinearLayout> </LinearLayout> </LinearLayout>
ii:获取键盘的值,写监听
public void getButton(){
//获取按钮组件
btn0= (Button) findViewById(R.id.btn0);
btn1= (Button) findViewById(R.id.btn1);
btn2= (Button) findViewById(R.id.btn2);
btn3= (Button) findViewById(R.id.btn3);
btn4= (Button) findViewById(R.id.btn4);
btn5= (Button) findViewById(R.id.btn5);
btn6= (Button) findViewById(R.id.btn6);
btn7= (Button) findViewById(R.id.btn7);
btn8= (Button) findViewById(R.id.btn8);
btn9= (Button) findViewById(R.id.btn9);
btnJia= (Button) findViewById(R.id.btnJia);
btnJian= (Button) findViewById(R.id.btnJian);
btnCheng= (Button) findViewById(R.id.btnCheng);
btnChu= (Button) findViewById(R.id.btnChu);
btnDian= (Button) findViewById(R.id.btnDian);
btnDengyu= (Button) findViewById(R.id.btnDengyu);
btnQingchu= (Button) findViewById(R.id.btnQingchu);
btnHuishan= (Button) findViewById(R.id.btnHuishan);
etGet = (TextView) findViewById(R.id.etResult);
//绑定监听
btn0.setOnClickListener(this);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
btnJia.setOnClickListener(this);
btnJian.setOnClickListener(this);
btnCheng.setOnClickListener(this);
btnChu.setOnClickListener(this);
btnDian.setOnClickListener(this);
btnDengyu.setOnClickListener(this);
btnQingchu.setOnClickListener(this);
btnHuishan.setOnClickListener(this);
}
iii:绑定按钮
@Override
public void onClick(View v) {
str = etGet.getText().toString();
switch (v.getId()){
//数字按钮
case R.id.btn0:
case R.id.btn1:
case R.id.btn2:
case R.id.btn3:
case R.id.btn4:
case R.id.btn5:
case R.id.btn6:
case R.id.btn7:
case R.id.btn8:
case R.id.btn9:
/* if (b_Clean)
{
b_Clean =false;
etGet.setText("");
}*/
etGet.setText(str+((Button)v).getText());
break;
//运算按钮
case R.id.btnJia:
case R.id.btnJian:
case R.id.btnCheng:
case R.id.btnChu:
case R.id.btnDian:
/* if (b_Clean)
{
b_Clean =false;
etGet.setText("");
}*/
etGet.setText(str+((Button)v).getText());
break;
//清除按钮
case R.id.btnQingchu:
/* if (b_Clean)
{
b_Clean =false;
etGet.setText("");
}*/
etGet.setText("");
break;
case R.id.btnDengyu:
getResult();
break;
case R.id.btnHuishan:
str=etGet.getText().toString();
try {
etGet.setText(str.substring(0,str.length()-1));
}
catch (Exception e){
etGet.setText("");
}
break;
}
}
iV:算法功能实现
public void getResult(){
str = etGet.getText().toString();
strArray = new String[str.length()]; //将得到的字符串放在一个字符数组里
//System.out.println("str"+str);
int n=0;
for(int i=0; i<strArray.length;i++){
strArray[i] = str.substring(i, i+1); //遍历数组的每个元素
//System.out.print(strArray[i]);
if(strArray[i].equals("+")||strArray[i].equals("-") //满足条件
||strArray[i].equals("×")||strArray[i].equals("÷"))
{
n= i; //记录符号存在的位置
}
}
int num1 = Integer.parseInt(str.substring(0,n)); //得到前一串数
String caculate = str.substring(n,n+1); //得到算法符号,加减乘除
int num2 = Integer.parseInt(str.substring(n+1)); //得到后一串数
if (caculate.equals("+"))
{
Inputresult = num1+num2;
}
else if (caculate.equals("-"))
{
Inputresult = num1-num2;
}
else if (caculate.equals("×"))
{
Inputresult = num1*num2;
}
else if (caculate.equals("÷"))
{
if (num2==0)
{
return ;
}
Inputresult = num1/num2;
}
etGet.setText(num1+caculate+num2+"="+Inputresult);
}
更多计算器功能实现,请点击专题: 计算器功能汇总 进行学习
关于Android计算器功能的实现,查看专题:Android计算器 进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。