训练目标:
掌握UI界面的嵌套布局
EditText通过三种属性可以指定
android:digits 数字 0~9
android:inputType 自定义输入的类型
android:numeric 数字类型
掌握MVC设计模式的运用
掌握Menu组件的使用
分两个文件编写该项目。一个是Mainactivity,一个是Computer类,Computer类主要是进行运算
Mainactivity类主要代码如下:
private class OpHandler implements OnClickListener {
@Override
public void onClick(View v) {
String op1Str=op1Text.getText().toString();
String op2Str=op2Text.getText().toString();
double num1=Double.parseDouble(op1Str);
double num2=Double.parseDouble(op2Str);
double result=0;
switch (v.getId()) {
case R.id.add:
opText.setText(" + ");
result=ComputerBiz.add(num1, num2);
break;
case R.id.sub:
opText.setText(" - ");
result=ComputerBiz.sub(num1, num2);
break;
case R.id.multiply:
opText.setText(" * ");
result=ComputerBiz.multiply(num1, num2);
break;
case R.id.divide:
opText.setText(" / ");
if(num2==0){
resultText.setText("除数不能为0");
Toast.makeText(MainActivity.this, "除数不能为0", Toast.LENGTH_LONG).show();
}
else
result=ComputerBiz.divide(num1, num2);
break;
default:
break;
}
if(!(num2==0&&" / ".equals(opText.getText())))
resultText.setText(""+result);
}
}
Computer类主要代码如下:
public static double add(double num1,double num2 ){
return num1+num2;
}
public static double sub(double num1,double num2 ){
return num1-num2;
}
public static double multiply(double num1,double num2 ){
return num1*num2;
}
public static double divide(double num1,double num2 ) throws ArithmeticException{
return num1/num2;
}
布局采用Linnerlayout代码如下:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/op1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal" />
<TextView
android:id="@+id/op"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
<EditText
android:id="@+id/op2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=" = " />
<TextView
android:id="@+id/result"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
<!-- Bottom -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/add"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=" + " />
<Button
android:id="@+id/sub"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=" - " />
<Button
android:id="@+id/multiply"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=" * " />
<Button
android:id="@+id/divide"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:text=" / " />
</LinearLayout>
运行效果图: