计算器(android)

来源:互联网 发布:ae cc 2015 for mac 编辑:程序博客网 时间:2024/05/06 07:29

对计算器的一些说明:

此计算器比较简陋,可以实现加减乘除这些运算,并能实现连续运算。对小数运算进行了优化了,避免了小数在计算时出现误差。

主界面:


calculator的main_activity.java;

import android.R.string;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity {TextView tv=null;private  double number_one=0.0,number_two=0.0;String  arithmetic1=" ",arithmetic2=" ";private Button button_zone;private Button button_one;private Button button_two;private Button button_three;private Button button_four;private Button button_five;private Button button_six;private Button button_seven;private Button button_eight;private Button button_nine;private Button button_clean;private Button button_equate;private Button button_tiny;private Button button_addition;private Button button_subtraction;private Button button_multiplication;private Button button_division;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button_zone=(Button)findViewById(R.id.But_zo);button_one=(Button)findViewById(R.id.But_on);button_two=(Button)findViewById(R.id.But_tw);button_three=(Button)findViewById(R.id.But_th);button_four=(Button)findViewById(R.id.But_fo);button_five=(Button)findViewById(R.id.But_fi);button_six=(Button)findViewById(R.id.But_si);button_seven=(Button)findViewById(R.id.But_se);button_eight=(Button)findViewById(R.id.But_ei);button_nine=(Button)findViewById(R.id.But_ni);button_equate =(Button)findViewById(R.id.But_eq);button_tiny =(Button)findViewById(R.id.But_ti);button_addition=(Button)findViewById(R.id.But_ad);button_subtraction=(Button)findViewById(R.id.But_su);button_multiplication=(Button)findViewById(R.id.But_mu);    button_division=(Button)findViewById(R.id.But_di);    button_clean=(Button)findViewById(R.id.But_cl);tv = (TextView)findViewById(R.id.ed_tv);button_equate.setOnClickListener (Listener);button_tiny.setOnClickListener (Listener);button_addition.setOnClickListener (Listener);button_subtraction.setOnClickListener(Listener);button_multiplication.setOnClickListener(Listener);button_division.setOnClickListener(Listener);button_five.setOnClickListener(Listener);button_five.setOnClickListener(Listener);button_zone.setOnClickListener(Listener);button_one.setOnClickListener (Listener);button_two.setOnClickListener(Listener);button_three.setOnClickListener(Listener);button_four.setOnClickListener(Listener);button_five.setOnClickListener(Listener);button_six.setOnClickListener(Listener);button_seven.setOnClickListener(Listener);button_eight.setOnClickListener(Listener);button_nine.setOnClickListener(Listener);button_clean.setOnClickListener(Listener);} public OnClickListener Listener = new OnClickListener()  {public void onClick(View v)    {Button btn=(Button)v;switch ( btn.getId() ) { case R.id.But_zo:if (arithmetic2.equals("=")) {clean();}tv_changed(0);break;case R.id.But_on:if (arithmetic2.equals("=")) {clean();}tv_changed(1);break;case R.id.But_tw:if (arithmetic2.equals("=")) {clean();}tv_changed(2);break;case R.id.But_th:if (arithmetic2.equals("=")) {clean();}tv_changed(3);break;case R.id.But_fo:if (arithmetic2.equals("=")) {clean();}tv_changed(4);break;case R.id.But_fi:if (arithmetic2.equals("=")) {clean();}tv_changed(5);break;case R.id.But_si:if (arithmetic2.equals("=")) {clean();}tv_changed(6);break;case R.id.But_se:if (arithmetic2.equals("=")) {clean();}tv_changed(7);break;case R.id.But_ei:if (arithmetic2.equals("=")) {clean();}tv_changed(8);break;case R.id.But_ni:if (arithmetic2.equals("=")) {clean();}tv_changed(9);break;case R.id.But_eq:tv_changed("=");break;case R.id.But_ad:tv_changed("+");break;case R.id.But_mu:tv_changed("*");break;case R.id.But_su:tv_changed("-");break;case R.id.But_di:tv_changed("/");break;case R.id.But_ti:tv_changed(".");break;case R.id.But_cl:tv_changed("clean");break;default:break;  }    }private void tv_changed(int i) {String string = tv.getText().toString();string += i;tv.setText(string);}private void tv_changed(String str) {  if ( str.equals(".") ) {  String str1 = tv.getText().toString()+"."; tv.setText(str1);}      if(str.equals("clean"))      {  clean(); }if( str =="+"||str =="-"||str =="*"||str =="/" ){String str1 = tv.getText().toString(); tv.setText(str1); number_one= Double.parseDouble(str1)*10000;System.out.println("numberone="+number_one); tv.setText(" "); arithmetic1 = str; System.out.println("arithmetic1="+arithmetic1); tv.setText(str); tv.setText(" "); }if (str=="=")  {String str1 = tv.getText().toString(); tv.setText(str1); number_two= Double.parseDouble(str1)*10000;System.out.println("numbertwo="+number_two); tv.setText(" "); arithmetic2 = str; System.out.println("arithmetic2="+arithmetic2); tv.setText(str); arithmetic(number_one,number_two,arithmetic1); }}private void clean() {      tv.setText(" ");     number_two=0.0;     arithmetic2=" ";     System.out.println("numberone="+number_one);     System.out.println("numbertwo="+number_two);} };protected void arithmetic(double number_one2, double number_two2,String arithmetic1){            tv.setText(" ");   if (arithmetic1.equals("+")) {   number_one=(number_one2+ number_two2)/10000;     String s = String.valueOf(number_one);     tv.setText(s);    }   else if (arithmetic1.equals("-")) {   number_one=(number_one2 - number_two2)/10000;     String s1 = String.valueOf(number_one);     tv.setText(s1);  }   else  if (arithmetic1.equals("*")){   number_one=(number_one2 * number_two2)/100000000;     String s2 = String.valueOf(number_one);     tv.setText(s2); }   else{ number_one=(number_one2 / number_two2);     String s3 = String.valueOf(number_one);     tv.setText(s3);  }   } }

布局文件:activitymain.xml
<RelativeLayout 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: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"    android:background="@drawable/all_bg" >    <TableLayout           android:layout_width="280dip"          android:layout_height="80dip"              android:background="@drawable/bg_box">          <EditText               android:id="@+id/ed_tv"             android:layout_width="280dip"             android:layout_height="80dip"             android:hint="@string/zone"             android:textSize="35sp"        > </EditText>       </TableLayout>   <TableRow              android:layout_width="280dip"              android:layout_height="60dip"              android:layout_marginTop="80dip"              >                   <Button           android:id="@+id/But_cl"          android:layout_width="280dip"          android:layout_height="60dip"            android:text="@string/clean"          android:textColor="#F8F8FF"          android:textSize="25sp"          android:background="#404040"           />                 </TableRow>  <TableRow          android:layout_width="280dip"         android:layout_height="80dip"         android:layout_marginTop="140dip"      >      <Button          android:id="@+id/But_se"           android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/seven"          android:textColor="#F8F8FF"          android:textSize="25sp"                    />           <Button           android:id="@+id/But_ei"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/eight"          android:textColor="#F8F8FF"          android:textSize="25sp"          />         <Button           android:id="@+id/But_ni"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/nine"          android:textColor="#F8F8FF"          android:textSize="25sp"          />            <Button           android:id="@+id/But_ad"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/addition"          android:textColor="#F8F8FF"          android:textSize="25sp"          />                          </TableRow>          <TableRow          android:layout_width="280dip"         android:layout_height="80dip"         android:layout_marginTop="220dip"      >      <Button          android:id="@+id/But_si"           android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/six"          android:textColor="#F8F8FF"          android:textSize="25sp"                    />           <Button           android:id="@+id/But_fi"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/five"          android:textColor="#F8F8FF"          android:textSize="25sp"          />         <Button           android:id="@+id/But_fo"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/four"          android:textColor="#F8F8FF"          android:textSize="25sp"          />            <Button           android:id="@+id/But_su"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/subtraction"          android:textColor="#F8F8FF"          android:textSize="25sp"          />                          </TableRow>        <TableRow          android:layout_width="280dip"         android:layout_height="80dip"         android:layout_marginTop="300dip"      >      <Button          android:id="@+id/But_th"           android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/three"          android:textColor="#F8F8FF"          android:textSize="25sp"                    />           <Button           android:id="@+id/But_tw"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/two"          android:textColor="#F8F8FF"          android:textSize="25sp"          />         <Button           android:id="@+id/But_on"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/one"          android:textColor="#F8F8FF"          android:textSize="25sp"          />            <Button           android:id="@+id/But_mu"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/multiplication"          android:textColor="#F8F8FF"          android:textSize="25sp"          />                          </TableRow>          <TableRow          android:layout_width="280dip"         android:layout_height="80dip"         android:layout_marginTop="380dip"      >      <Button           android:id="@+id/But_zo"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/zone"          android:textColor="#F8F8FF"          android:textSize="25sp"                    />           <Button               android:id="@+id/But_ti"           android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/tiny"          android:textColor="#F8F8FF"          android:textSize="25sp"          />         <Button           android:id="@+id/But_eq"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/equate"          android:textColor="#F8F8FF"          android:textSize="25sp"          />  1          <Button           android:id="@+id/But_di"          android:layout_width="70dip"          android:layout_height="80dip"            android:background="@drawable/blankt"          android:text="@string/division"          android:textColor="#F8F8FF"          android:textSize="25sp"          />                          </TableRow>    </RelativeLayout>





原创粉丝点击