Android简单计算器
Android简单计算器
设计Android简单计算器
此次通过设计一个简单的计算器来巩固课堂上所学到的知识,熟悉Android的编程设计。
界面设计
计算器功能实现简单的加减乘除,混合运算。
- 效果图
- 代码
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rowCount="6"
android:columnCount="4"
tools:context=".MainActivity">
<TextView
android:id="@+id/show_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:layout_marginLeft="4px"
android:gravity="center_vertical|right"
android:text="0"
android:textSize="50dp"/>
<Button
android:id="@+id/buttonClear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:text="清除"
android:textSize="26sp"
android:background="#FF0000"
/>
<Button
android:id="@+id/buttonPop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:text="删除"
android:textSize="26sp"
/>
<Button android:id="@+id/button1" android:text="1" android:textSize="26sp"/>
<Button android:id="@+id/button2" android:text="2" android:textSize="26sp"/>
<Button android:id="@+id/button3" android:text="3" android:textSize="26sp"/>
<Button android:id="@+id/btn_plus" android:text="+" android:textSize="26sp"/>
<Button android:id="@+id/button4" android:text="4" android:textSize="26sp"/>
<Button android:id="@+id/button5" android:text="5" android:textSize="26sp"/>
<Button android:id="@+id/button6" android:text="6" android:textSize="26sp"/>
<Button android:id="@+id/btn_minus" android:text="-" android:textSize="26sp"/>
<Button android:id="@+id/button7" android:text="7" android:textSize="26sp"/>
<Button android:id="@+id/button8" android:text="8" android:textSize="26sp"/>
<Button android:id="@+id/button9" android:text="9" android:textSize="26sp"/>
<Button android:id="@+id/btn_multiply" android:text="*" android:textSize="26sp"/>
<Button android:id="@+id/btn_dot" android:text="." android:textSize="26sp"/>
<Button android:id="@+id/button0" android:text="0" android:textSize="26sp"/>
<Button android:id="@+id/btn_result" android:text="=" android:textSize="26sp"/>
<Button android:id="@+id/btn_divide" android:text="/" android:textSize="26sp"/>
</GridLayout>
逻辑实现
实现加减乘除混合运算
主要逻辑代码如下:
//加减乘除逻辑计算
//等于号:“=” 监听器
result.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String ss = show_text.getText().toString();
//判断是否输入错误,检测错误
if(ss==null||ss.equals("")){
return;
}
String [] str = {"+","-","*","/","."};
boolean continu = true;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(ss.indexOf(str[i]+str[j])!=-1){
Toast.makeText(MainActivity.this, "有非法输入,请检查!", Toast.LENGTH_LONG).show();
continu = false;
break;
}
}
}
if(continu){ //开始分割计算,进行优先计算
List<String> list = new ArrayList<String>();//用来保存分割后的字符
double sum = 0;//结果置零
if(ss.indexOf("+")!=-1||ss.indexOf("-")!=-1) {//以“+”分割字符串
String[] strs = ss.split("\\+");
for (int i = 0; i < strs.length; i++) {
if (ss.indexOf("-") != -1) {
String[] a = strs[i].split("\\-");//以“-”分割字符串
list.add(a[0]);
for (int j = 1; j < a.length; j++) {
list.add("-" + a[j]);
}
}
else{
list.add(strs[i]);
}
}
}
else{
list.add(ss);
}
for(int i=0;i<list.size();i++){
double rs = 1;
//先从乘除算起
if (list.get(i).indexOf("*")!=-1||list.get(i).indexOf("/")!=-1){
String [] s1 = list.get(i).split("\\*");//以“*”分割字符串
for(int j=0;j<s1.length;j++){
if(s1[j].indexOf("/")!=-1){
String [] d = s1[j].split("\\/");//以“/”分割字符串
double de = Double.parseDouble(d[0]);
for (int k=1;k<d.length;k++){
de = de/Double.parseDouble(d[k]);
}
rs = rs * de;
}
else{
rs = rs*Double.parseDouble(s1[j]);
}
}
sum = sum + rs;
}
else{//再算加减
sum = sum + Double.parseDouble(list.get(i));
}
}
show_text.setText(sum+"");//输出
}
}
});
总结
此次计算器主要实现了简单的加减乘除,能够混合运算,没有其他更多的功能,更高级的功能,输入判断只是简单的判断整体输入有没有错误,没有实现边输入边判断,虽然没有深入的实现,但还是能够让我学到点东西。