简易计算器

来源:互联网 发布:淘宝上怎么弄充话费 编辑:程序博客网 时间:2024/04/29 11:59

阶段1:进行计算器的界面布局View.

                  

具体代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:background="@drawable/bg"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <EditText        android:id="@+id/num1"        android:layout_width="80dp"        android:layout_height="wrap_content"         android:inputType="number" />        <TextView         android:id="@+id/type"        android:layout_width="50dp"        android:layout_height="50dp"        android:layout_toRightOf="@id/num1"        android:gravity="center" />    <EditText        android:id="@+id/num2"        android:layout_width="80dp"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/num1"        android:layout_marginLeft="50dp"        android:inputType="number" />       <TextView        android:id="@+id/equal"        android:layout_width="80dp"        android:layout_height="50dp"        android:layout_toRightOf="@id/num2"        android:gravity="center_vertical" />        <Button         android:id="@+id/add"        android:layout_width="70dp"        android:layout_height="wrap_content"        android:layout_below="@id/num1"        android:text="@string/add" />    <Button         android:id="@+id/sub"        android:layout_width="70dp"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/add"        android:layout_alignTop="@id/add"        android:text="@string/sub" />        <Button         android:id="@+id/mul"        android:layout_width="70dp"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/sub"        android:layout_alignTop="@id/sub"        android:text="@string/mul" />        <Button         android:id="@+id/div"        android:layout_width="70dp"        android:layout_height="wrap_content"        android:layout_toRightOf="@id/mul"        android:layout_alignTop="@id/mul"        android:text="@string/div" /></RelativeLayout>         

阶段2:编写计算器的业务逻辑类Model:CalculatorBiz.具体代码如下:

package com.lks.model;public class CalculatorBiz {public float add(float num1,float num2){return num1+num2;}public float sub(float num1,float num2){return num1-num2;}public float mul(float num1,float num2){return num1*num2;}public float div(float num1,float num2){return num1/num2;}}

阶段3:编写Activity,查找组件并进行事件处理.具体代码如下:

package com.lks.activity;import com.lks.model.CalculatorBiz;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface;import android.graphics.Color;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;public class MainActivity extends Activity {    //定义组件private EditText inputnum1;private EditText inputnum2;private TextView type;private TextView equal;private Button add;private Button sub;private Button mul;private Button div;CalculatorBiz calculator=new CalculatorBiz();    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //查找组件        inputnum1=(EditText) findViewById(R.id.num1);        inputnum2=(EditText) findViewById(R.id.num2);        type=(TextView) findViewById(R.id.type);        equal=(TextView) findViewById(R.id.equal);        add=(Button) findViewById(R.id.add);        sub=(Button) findViewById(R.id.sub);        mul=(Button) findViewById(R.id.mul);        div=(Button) findViewById(R.id.div);        //定义TextView中的文本颜色        type.setTextColor(Color.WHITE);        equal.setTextColor(Color.WHITE);        //事件处理        add.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("+");equal.setText("\t=\t"+calculator.add(a, b));}});        sub.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("-");equal.setText("\t=\t"+calculator.sub(a, b));}});        mul.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("*");equal.setText("\t=\t"+calculator.mul(a, b));}});        div.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String num1=inputnum1.getText().toString();String num2=inputnum2.getText().toString();float a=Float.parseFloat(num1);float b=Float.parseFloat(num2);type.setText("/");equal.setText("\t=\t"+calculator.div(a, b));}});            }

阶段4:给计算器添加Menu当点击菜单按钮式会弹出菜单选项.

                                           

具体代码如下:

//添加Menu菜单    @Override    public boolean onCreateOptionsMenu(Menu menu) {    super.onCreateOptionsMenu(menu);    menu.add(0, 1, 0, "关于");    menu.add(0, 2, 1, "退出");    menu.findItem(2);        return true;    }

阶段5:当点击关于菜单时,显示对计算器的简单说明。

               

具体代码如下:

public boolean onOptionsItemSelected(MenuItem item){    if(item.getItemId() == 1){    AlertDialog.Builder builder = new Builder(MainActivity.this);          builder.setTitle("关于");          builder.setMessage("作者:lks\n版本:version1");          builder.setNegativeButton("确定", new android.content.DialogInterface.OnClickListener() {              @Override              public void onClick(DialogInterface dialog, int which) {                  dialog.dismiss();              }          });          builder.create().show();             }else if(item.getItemId() == 2){    android.os.Process.killProcess(android.os.Process.myPid());                }         return super.onOptionsItemSelected(item);    }

 

原创粉丝点击