安卓计算器编写练习
前言
安卓作业,只能实现两个数的运算,比较简单。
在UI那块
我采用的是书本上的界面,与书本一致
在app/src/main/res/layout/中的activity_main.xml中的部分代码
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:layout_marginLeft="4px"
android:gravity="left"
android:text="0"
android:textSize="50dip"
android:id="@+id/txt"
/>
<Button
android:id="@+id/btn_clear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_columnSpan="4"
android:text="清除"
android:textSize="26sp"
/>
<Button android:text="1" android:textSize="26sp" android:id="@+id/btn1" android:onClick="onBtn1"/>
<Button android:text="2" android:textSize="26sp" android:id="@+id/btn2" android:onClick="onBtn2"/>
<Button android:text="3" android:textSize="26sp" android:id="@+id/btn3" android:onClick="onBtn3"/>
<Button android:text="+" android:textSize="26sp" android:id="@+id/btnadd" android:onClick="onBtnadd"/>
<Button android:text="4" android:textSize="26sp" android:id="@+id/btn4" android:onClick="onBtn4"/>
<Button android:text="5" android:textSize="26sp" android:id="@+id/btn5" android:onClick="onBtn5"/>
<Button android:text="6" android:textSize="26sp" android:id="@+id/btn6" android:onClick="onBtn6"/>
<Button android:text="-" android:textSize="26sp" android:id="@+id/btnmin" android:onClick="onBtnmin"/>
<Button android:text="7" android:textSize="26sp" android:id="@+id/btn7" android:onClick="onBtn7"/>
<Button android:text="8" android:textSize="26sp" android:id="@+id/btn8" android:onClick="onBtn8"/>
<Button android:text="9" android:textSize="26sp" android:id="@+id/btn9" android:onClick="onBtn9"/>
<Button android:text="*" android:textSize="26sp" android:id="@+id/btnmul" android:onClick="onBtnmul"/>
<Button android:text="." android:textSize="26sp" android:id="@+id/btnpoint" android:onClick="onBtnpoint"/>
<Button android:text="0" android:textSize="26sp" android:id="@+id/btn0" android:onClick="onBtn0"/>
<Button android:text="=" android:textSize="26sp" android:id="@+id/btncon" android:onClick="onBtncon"/>
<Button android:text="/" android:textSize="26sp" android:id="@+id/btndiv" android:onClick="onBtndiv"/>
逻辑代码
1.在主体部分
思路:就是 按照按钮点击事件的套路,每当点击按钮时,就会执行onClick()的方法,我们在这个方法里加入个switch循环,每个case:是按钮的id,我们申请个private StringBuilder的字符串。每按一个按钮,只要满足要求,不是错误的输入,就调用append()方法,将按钮的值当字符存入这个字符串中,当用户按到等号时,调用另一个java文件的自己写的处理的类(想都写在mainActivity也行啊,不过太长了)。
下面是主体代码
在app/src/main/java/com/liliandriod/mycalculator/MainActivity中的主要代码
//与用户界面程序中的组件建立关联
ClearBtn =(Button)findViewById(R.id.btn_clear);
OneBtn =(Button) findViewById(R.id.btn1);
TwoBtn =(Button) findViewById(R.id.btn2);
ThreeBtn =(Button)findViewById(R.id.btn3);
FourBtn =(Button) findViewById(R.id.btn4);
FiveBtn =(Button)findViewById(R.id.btn5);
SixBtn =(Button)findViewById(R.id.btn6);
SevenBtn =(Button)findViewById(R.id.btn7);
EightBtn =(Button)findViewById(R.id.btn8);
NineBtn =(Button)findViewById(R.id.btn9);
ZeroBtn =(Button)findViewById(R.id.btn0);
PointBtn =(Button)findViewById(R.id.btnpoint);
AddBtn =(Button)findViewById(R.id.btnadd);
MinBtn =(Button)findViewById(R.id.btnmin);
MulBtn =(Button)findViewById(R.id.btnmul);
DivBtn =(Button)findViewById(R.id.btndiv);
ConBtn =(Button)findViewById(R.id.btncon);
txt=(TextView)findViewById(R.id.txt);
//clear按键事件
ClearBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
str1="";
str2="";
result=0;
index=0;
txt.setText("0");
}
});
//按键1
OneBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(index !=1){//判断是否为第一个数字
str1="1";
txt.setText("1");
index=1;
}else {//1 不是第一个数字
str2="1";
txt.setText("1");
}
}
});
//根据type选择加减乘除 1,2,3,4加减乘除
ConBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if(type==1){
System.out.println("str1:" +str1+"str2:"+str2);
result=Integer.parseInt(str2)+Integer.parseInt(str1);
String a=String.valueOf(result);
txt.setText(a);
}
if(type==2){
System.out.println("str1"+str1+" str2"+str2);
result=Integer.parseInt(str2)-Integer.parseInt(str1);
String a=String.valueOf(result);
txt.setText(a);
}
if(type==3){
System.out.println("str1:" +str1+"str2:"+str2);
result=Integer.parseInt(str2)*Integer.parseInt(str1);
String a=String.valueOf(result);
txt.setText(a);
}
if(type==4){
System.out.println("str1"+str1+" str2"+str2);
result=Integer.parseInt(str2)/Integer.parseInt(str1);
String a=String.valueOf(result);
txt.setText(a);
}
}
});
成果展示