说明:简易计算器,当输入为空时,弹出对话框提示:没有输入数字;当被除数为0时,弹出对话框提示:被除数不能为空;输入数字后,点击加减乘除按钮,可以进行相应运算;点击menu菜单后,屏幕最下方出现关于和退出按钮,点击关于,弹出关于对话框显示相应信息;点击退出,直接退出程序。
1.布局,activity_main.xml代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="vertical" > <RelativeLayout android:id="@+id/relative1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <!-- 参与运算的第一个数 --> <EditText android:id="@+id/num1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginTop="10dp" android:ems="4" android:inputType="number" > <requestFocus /> </EditText> <!--运算符号 --> <TextView android:id="@+id/fuhao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_toRightOf="@id/num1" android:padding="@dimen/padding_medium" android:text="@string/fuhao" /> <!-- 参与运算的第二个数 --> <EditText android:id="@+id/num2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:layout_toRightOf="@id/fuhao" android:ems="4" android:inputType="number" /> <!-- 等号 --> <TextView android:id="@+id/denghao" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_toRightOf="@id/num2" android:padding="@dimen/padding_medium" android:text="@string/denghao" /> <!-- 结果 --> <TextView android:id="@+id/result" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:layout_toRightOf="@id/denghao" android:padding="@dimen/padding_medium" android:text="@string/result" /> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <!-- 加号 --> <Button android:id="@+id/add" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerHorizontal="true" android:ems="4" android:text="@string/add" /> <!-- 减号 --> <Button android:id="@+id/sub" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_toRightOf="@id/add" android:ems="4" android:text="@string/sub" /> <!-- 乘号 --> <Button android:id="@+id/mult" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_toRightOf="@id/sub" android:ems="4" android:text="@string/mult" /> <!-- 除号 --> <Button android:id="@+id/divid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/mult" android:ems="4" android:text="@string/divid" /> </RelativeLayout> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <!-- 关于按钮 --> <Button android:id="@+id/about" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/about" /> <!-- 退出按钮 --> <Button android:id="@+id/quit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/quit" /> </RelativeLayout> </LinearLayout>
2.MainActivity.java代码:
package cn.bzu.case1; import java.text.DecimalFormat; import cn.bzu.model.CalculatorBiz; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import android.widget.RemoteViews.ActionException; import android.support.v4.app.NavUtils; public class MainActivity extends Activity { private Double number1, number2; private EditText num1, num2; private TextView result, fuhao; private Button add, sub, mult, divid, quit, about; CalculatorBiz calculator; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); num1 = (EditText) this.findViewById(R.id.num1); num2 = (EditText) this.findViewById(R.id.num2); add = (Button) this.findViewById(R.id.add); sub = (Button) this.findViewById(R.id.sub); mult = (Button) this.findViewById(R.id.mult); divid = (Button) this.findViewById(R.id.divid); fuhao = (TextView) this.findViewById(R.id.fuhao); result = (TextView) this.findViewById(R.id.result); quit = (Button) this.findViewById(R.id.quit); about = (Button) this.findViewById(R.id.about); quit.setVisibility(View.INVISIBLE); about.setVisibility(View.INVISIBLE); add.setOnClickListener(new CalculatorClickListener()); sub.setOnClickListener(new CalculatorClickListener()); mult.setOnClickListener(new CalculatorClickListener()); divid.setOnClickListener(new CalculatorClickListener()); } private class CalculatorClickListener implements OnClickListener { @Override public void onClick(View v) { // 如果editText为空 if (num1.getText().toString().equalsIgnoreCase("")) { Toast.makeText(MainActivity.this, "没有输入数字!", Toast.LENGTH_SHORT) .show(); } else if (num2.getText().toString().equalsIgnoreCase("")) { Toast.makeText(MainActivity.this, "没有输入数字!", Toast.LENGTH_SHORT) .show(); } else { number1 = Double.parseDouble(num1.getText().toString()); number2 = Double.parseDouble(num2.getText().toString()); if (v.equals(add)) { result.setText(number1 + number2 + ""); fuhao.setText("+"); } if (v.equals(sub)) { result.setText(number1 - number2 + ""); fuhao.setText("-"); } if (v.equals(mult)) { result.setText(number1 * number2 + ""); fuhao.setText("*"); } if (v.equals(divid)) { if (number2 == 0) { Toast.makeText(MainActivity.this, "被除数不能为零!", Toast.LENGTH_SHORT).show(); } else { result.setText(number1 / number2 + ""); fuhao.setText("/"); } } } } } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); // 创建菜单,并设置图标,使用系统提供的图标, menu.add(0, R.id.about, 0, "关于").setIcon(android.R.drawable.ic_dialog_info); menu.add(0, R.id.quit, 1, "退出").setIcon(android.R.drawable.ic_lock_power_off); menu.findItem(R.id.quit); // 返回true即显示菜单 return true; } @Override // 响应菜单单击事件, public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.about: // 关于 AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle("关于"); dialog.setMessage("简易计算器!\n作者:vivy\n版本:1.0"); dialog.show(); break; case R.id.quit: // 退出 this.finish(); break; } return super.onOptionsItemSelected(item); } }3.效果图: