1.activity_main.xml
<LinearLayout 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:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" >
<!-- Top -->
<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>
</LinearLayout>
2ComputerBiz.java
public class ComputerBiz { 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; }
}
3. MainActivity.java
public class MainActivity extends Activity { private EditText op1Text; private TextView opText; private EditText op2Text; private TextView resultText; private Button add; private Button sub; private Button multiply; private Button divide;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initComponnents(); }
private void initComponnents() { op1Text = (EditText) this.findViewById(R.id.op1); opText = (TextView) this.findViewById(R.id.op); op2Text = (EditText) this.findViewById(R.id.op2);
resultText = (TextView) this.findViewById(R.id.result); OpHandler opHandler=new OpHandler(); add = (Button) this.findViewById(R.id.add); add.setOnClickListener(opHandler); sub = (Button) this.findViewById(R.id.sub); sub.setOnClickListener(opHandler); multiply = (Button) this.findViewById(R.id.multiply); multiply.setOnClickListener(opHandler); divide = (Button) this.findViewById(R.id.divide); divide.setOnClickListener(opHandler); }
// 编写事件处理类 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; } Toast.makeText(MainActivity.this, ""+!(num2==0&&" / ".equals(opText))+"and"+" / ".equals(opText)+opText, Toast.LENGTH_LONG).show(); //true //false if(!(num2==0&&" / ".equals(opText.getText()))) resultText.setText(""+result);
} }
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; }
}