Android 简单计算器源码....

PS:今天算是闲着没事做了一个小型的计算器...顺便熟悉一下Android的布局,组件,以及时间监听的方法...就当是做了一个小小的练习吧...

    顺便去对比了一下别人写的代码...有的使用到了集合框架去实现,我却是用的数组,相比之下实在是有点弱爆了...sad....自己还需要努力啊...

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/calculator"
    android:background="#ffffffff"
    android:orientation="vertical"
    >
    <!-- cursorVisible:表示光标可见..
         1280*800分辨率..
          -->
    <EditText
        android:id="@+id/et_show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="right|center_vertical"
        android:cursorVisible="false"
        android:layout_marginTop="4dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:hint="@string/et_show"
        android:layout_gravity="center"
        android:singleLine="true"
        android:textSize="25sp"
        android:textColor="#000000"
        android:layout_weight="1"/>
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tablelayout"
        android:layout_weight="10"
        android:layout_marginTop="4dp">
        <LinearLayout
            android:id="@+id/linerlayout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1">
            <Button
                android:id="@+id/clears"
                android:layout_width="60dip"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:textSize="25sp"
                android:text="@string/clears"/>
            <Button
                android:id="@+id/clearAll"
                android:layout_width="40dip"
                android:layout_height="fill_parent"
                android:text="@string/clearAll"
                android:textSize="25sp"
                android:layout_weight="1"/>
        </LinearLayout>
        <TableRow
            android:id="@+id/row_1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <Button
                android:id="@+id/btn_1"
                android:layout_width="40dip"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_1"
                android:textSize="25sp"
                />
            <Button
                android:id="@+id/btn_2"
                android:layout_height="fill_parent"
                android:layout_width="40dip"
                android:layout_weight="1"
                android:text="@string/btn_2"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_3"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_3"
                android:textSize="20sp"
                />
             <Button
                 android:id="@+id/btn_add"
                 android:layout_width="40dip"
                 android:layout_height="fill_parent"
                 android:layout_weight="1"
                 android:text="@string/btn_add"
                 android:textSize="25sp"/>
        </TableRow>
        <TableRow
            android:id="@+id/row2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
             <Button
                 android:id="@+id/btn_4"
                 android:layout_width="40dp"
                 android:layout_height="fill_parent"
                 android:text="@string/btn_4"
                 android:textSize="25sp"
                 android:layout_weight="1"/>
             <Button
                 android:id="@+id/btn_5"
                 android:layout_width="40dp"
                 android:layout_height="fill_parent"
                 android:text="@string/btn_5"
                 android:textSize="25sp"
                 android:layout_weight="1"/>
             <Button
                 android:id="@+id/btn_6"
                 android:layout_width="40dp"
                 android:layout_height="fill_parent"
                 android:text="@string/btn_6"
                 android:textSize="25sp"
                 android:layout_weight="1"/>
             <Button
                 android:id="@+id/btn_sub"
                 android:layout_width="40dp"
                 android:layout_height="fill_parent"
                 android:text="@string/btn_sub"
                 android:textSize="25sp"
                 android:layout_weight="1"/>
        </TableRow>
        <TableRow
            android:id="@+id/row_3"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <Button
                android:id="@+id/btn_7"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_7"
                android:textSize="25sp"
                />
            <Button
                android:id="@+id/btn_8"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_8"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_9"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_9"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_mlt"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_mlt"
                android:textSize="25sp"/>
        </TableRow>
        <TableRow
            android:id="@+id/row_4"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <Button
                android:id="@+id/btn_0"
                android:layout_height="fill_parent"
                android:layout_width="40dp"
                android:layout_weight="1"
                android:text="@string/btn_0"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_spot"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_spot"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_tan"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_tan"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_div"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_div"
                android:textSize="25sp"/>
        </TableRow>
        <TableRow
            android:id="@+id/row_5"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <Button
                android:id="@+id/btn_square"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_square"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_sqrt"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_sqrt"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_sin"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_sin"
                android:textSize="25sp"/>
            <Button
                android:id="@+id/btn_cos"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_cos"
                android:textSize="25sp"/>
        </TableRow>
         <TableRow
            android:id="@+id/row_6"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
             <Button
                android:id="@+id/btn_cot"
                android:layout_width="60dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_cot"
                android:textSize="25sp"/>
              <Button
                android:id="@+id/btn_equal"
                android:layout_width="40dp"
                android:layout_height="fill_parent"
                android:layout_weight="1"
                android:text="@string/btn_equal"
                android:textSize="25sp"/>
          </TableRow>
     </TableLayout>
</LinearLayout>

上面这个就是布局文件了...这个布局在不同的分辨率的屏幕上,显示是有所区别的...不过应该差别不是很大.....

接着就是src下的MainActivity文件了....注释掉的地方,大家可以直接略过....

package com.example.android_calculator;
import java.lang.annotation.Target;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;
import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import android.widget.EditText;

public class MainActivity extends Activity {
//    @InjectView(R.id.btn_0) Button but_0;
//    @InjectView(R.id.btn_1) Button but_1;
//    @InjectView(R.id.btn_2) Button but_2;
//    @InjectView(R.id.btn_3) Button but_3;
//    @InjectView(R.id.btn_4) Button but_4;
//    @InjectView(R.id.btn_5) Button but_5;
//    @InjectView(R.id.btn_6) Button but_6;
//    @InjectView(R.id.btn_7) Button but_7;
//    @InjectView(R.id.btn_8) Button but_8;
//     @InjectView(R.id.btn_9) Button but_9;
//     @InjectView(R.id.btn_add) Button but_add;
//     @InjectView(R.id.btn_cos) Button but_cos;
//     @InjectView(R.id.btn_cot) Button but_cot;
//     @InjectView(R.id.btn_div) Button but_div;
//     @InjectView(R.id.btn_equal) Button but_equal;
//     @InjectView(R.id.btn_mlt) Button but_mlt;
//     @InjectView(R.id.btn_sin) Button but_sin;
//     @InjectView(R.id.btn_spot) Button but_spot;
//     @InjectView(R.id.btn_sqrt) Button but_sqrt;
//     @InjectView(R.id.btn_square) Button but_square;
//     @InjectView(R.id.btn_sub) Button but_sub;
//     @InjectView(R.id.btn_tan) Button but_tan;
//     @InjectView(R.id.clears) Button clears;
//     @InjectView(R.id.clearAll) Button clearAll;
//  Button []but_num=new Button[10];
    String str="";
     double result=0, num1=0, num2=0;
    int sign=0, flag=0;
    View vi;
    EditText et_show;
    Button but_0,but_1,but_2,but_3,but_4,but_5,but_6,but_7;
    Button but_8,but_9,but_add,but_sub,but_mlt,but_div,but_spot;
    Button but_sin,but_cos,but_tan,but_cot,but_equal,but_sqrt,but_square;
    Button clears,clearAll;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        et_show=(EditText)findViewById(R.id.et_show);
        et_show.setKeyListener(null);
        ButterKnife.inject(this);
        but_0=(Button)findViewById(R.id.btn_0);
        but_1=(Button)findViewById(R.id.btn_1);
        but_2=(Button)findViewById(R.id.btn_2);
        but_3=(Button)findViewById(R.id.btn_3);
        but_4=(Button)findViewById(R.id.btn_4);
        but_5=(Button)findViewById(R.id.btn_5);
        but_6=(Button)findViewById(R.id.btn_6);
        but_7=(Button)findViewById(R.id.btn_7);
        but_8=(Button)findViewById(R.id.btn_8);
        but_9=(Button)findViewById(R.id.btn_9);
        but_add=(Button)findViewById(R.id.btn_add);//加号..
        but_sub=(Button)findViewById(R.id.btn_sub);//减号..
        but_mlt=(Button)findViewById(R.id.btn_mlt);//乘号..
        but_div=(Button)findViewById(R.id.btn_div);//除号..
        but_spot=(Button)findViewById(R.id.btn_spot);//点..
        but_equal=(Button)findViewById(R.id.btn_equal);//等于..
        but_sin=(Button)findViewById(R.id.btn_sin);//sin..
        but_cos=(Button)findViewById(R.id.btn_cos);//cos..
        but_tan=(Button)findViewById(R.id.btn_tan);//tan..
        but_cot=(Button)findViewById(R.id.btn_cot);//cot..
        but_square=(Button)findViewById(R.id.btn_square);//平方..
        but_sqrt=(Button)findViewById(R.id.btn_sqrt);//根号..
        clears=(Button)findViewById(R.id.clears);//清除..
        clearAll=(Button)findViewById(R.id.clearAll);//全清..
        but_0.setOnClickListener(new onclicklistener());
        but_1.setOnClickListener(new onclicklistener());
        but_2.setOnClickListener(new onclicklistener());
        but_3.setOnClickListener(new onclicklistener());
        but_4.setOnClickListener(new onclicklistener());
        but_5.setOnClickListener(new onclicklistener());
        but_6.setOnClickListener(new onclicklistener());
        but_7.setOnClickListener(new onclicklistener());
        but_8.setOnClickListener(new onclicklistener());
        but_9.setOnClickListener(new onclicklistener());
        but_add.setOnClickListener(new onclicklistener());
        but_sub.setOnClickListener(new onclicklistener());
        but_mlt.setOnClickListener(new onclicklistener());
        but_div.setOnClickListener(new onclicklistener());
        but_spot.setOnClickListener(new onclicklistener());
        but_sin.setOnClickListener(new onclicklistener());
        but_cos.setOnClickListener(new onclicklistener());
        but_tan.setOnClickListener(new onclicklistener());
        but_cot.setOnClickListener(new onclicklistener());
        but_equal.setOnClickListener(new onclicklistener());
        but_sqrt.setOnClickListener(new onclicklistener());
        but_square.setOnClickListener(new onclicklistener());
        clears.setOnClickListener(new onclicklistener());
        clearAll.setOnClickListener(new onclicklistener());
       /*使用注解来绑定事件..
         * */
    }

    public double calculater(){
        switch(sign){
        case 0:
            result=num2;                  //res=3;
            break;
        case 1:
            result=num1+num2;
            break;
        case 2:
            result=num1-num2;
            break;
        case 3:
            result=num1*num2;
            break;
        case 4:
            result=num1/num2;
            break;
        }
        num1=result;     //num1=3;
        sign=0;
        return result;
    }
    class onclicklistener implements OnClickListener{
        public void onClick(View v){
            switch(v.getId()){
            case R.id.btn_0:
            {
                  if(flag==1){
                      str="";
                      str+=0;
                      et_show.setText(str);
                      flag=0;
                  }else{
                      char ch1[];
                      ch1=str.toCharArray();
                      if(!(ch1.length==1 && ch1[0]==‘0‘)){
                          str+=0;
                          et_show.setText(str);
                      }
                  }
                  vi=v;
                  break;
            }
            case R.id.btn_1:{
                if(flag==1){
                    str="";
                    str+=1;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=1;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_2:{
                if(flag==1){
                    str="";
                    str+=2;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=2;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_3:{
                if(flag==1){
                    str="";
                    str+=3;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=3;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_4:{
                if(flag==1){
                    str="";
                    str+=4;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=4;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_5:{
                if(flag==1){
                    str="";
                    str+=5;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=5;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_6:{
                if(flag==1){
                    str="";
                    str+=6;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=6;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_7:{
                if(flag==1){
                    str="";
                    str+=7;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=7;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_8:{
                if(flag==1){
                    str="";
                    str+=8;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=8;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_9:{
                if(flag==1){
                    str="";
                    str+=9;
                    et_show.setText(str);
                    flag=0;
                }else{
                    str+=9;
                    et_show.setText(str);
                }
                vi=v;
                break;
            }
            case R.id.btn_add:{
                if(str!=""){
                    if(vi==but_add){
                        sign=1;
                    }else{
                        num2=Double.parseDouble(str);  //num2=3;
                        calculater();
                        str=""+result;
                        et_show.setText(str);
                        sign=1;
                        flag=1;
                        vi=v;
                    }

                }
                break;
            }
            case R.id.btn_sub:{
                if(str!=""){
                    if(vi==but_sub){
                        sign=2;
                    }else{
                        num2=Double.parseDouble(str);
                        calculater();
                        str=""+result;
                        et_show.setText(str);
                        sign=2;
                        flag=1;
                        vi=v;
                    }
                }
                break;
            }
            case R.id.btn_mlt:{
                if(str!=""){
                    if(vi==but_mlt){
                        sign=3;
                    }else{
                        num2=Double.parseDouble(str);
                        calculater();
                        str=""+result;
                        et_show.setText(str);
                        flag=1;
                        sign=3;
                        vi=v;
                    }
                }
                break;
            }
            case R.id.btn_div:{
                if(str!=""){
                    if(vi==but_div){
                        sign=4;
                    }else{
                        num2=Double.parseDouble(str);
                        calculater();
                        str=""+result;
                        et_show.setText(str);
                        flag=1;
                        sign=4;
                        vi=v;
                    }
                }
                break;
            }
            case R.id.btn_spot:{
                str=str+".";
                et_show.setText(str);
                break;
            }
            case R.id.btn_equal:{
                if(str!=""&&vi!=but_add&&vi!=but_sub&&vi!=but_mlt&&vi!=but_div){
                    num2=Double.parseDouble(str);
                    calculater();
                    str=""+result;
                    et_show.setText(str);
                    flag=1;
                    vi=v;
                }
                break;
            }
            case R.id.btn_sqrt:{
                if(str!=""){
                    num2=Double.parseDouble(str);
                    result=Math.sqrt(num2);
                    str=""+result;
                    et_show.setText(str);
                }
                break;
            }
            case R.id.btn_square:{
                if(str!=""){
                    num2=Double.parseDouble(str);
                    result=num2*num2;
                    str=""+result;
                    et_show.setText(str);
                }
                break;
            }
            case R.id.btn_sin:{
                if(str!=""){
                    num2=Double.parseDouble(str);
                    result=Math.sin(num2);
                    str=""+result;
                    et_show.setText(str);
                }
                break;
            }
            case R.id.btn_cos:{
                if(str!=""){
                    num2=Double.parseDouble(str);
                    result=Math.cos(num2);
                    str=""+result;
                    et_show.setText(str);
                }
                break;
            }
            case R.id.btn_tan:{
                if(str!=""){
                    num2=Double.parseDouble(str);
                    result=Math.tan(num2);
                    str=""+result;
                    et_show.setText(str);
                }
                break;
            }
            case R.id.btn_cot:{
                if(str!=""){
                    num2=Double.parseDouble(str);
                    result=(1/Math.tan(num2));
                    str=""+result;
                    et_show.setText(str);
                }
                break;
            }
            case R.id.clears:{
                str="";
                et_show.setText(str);
                vi=v;
                break;
            }
            case R.id.clearAll:{
                num1=0.0;num2=0;result=0.0;
                str="";
                et_show.setText(str);
            }
            }
        }
   }
//    @OnClick(R.id.btn_0) void changetext0(){
//        if(flag==1){
//              str="";
//              str+=0;
//              et_show.setText(str);
//              flag=0;
//          }else{
//              char ch1[];
//              ch1=str.toCharArray();
//              if(!(ch1.length==1 && ch1[0]==‘0‘)){
//                  str+=0;
//                  et_show.setText(str);
//              }
//          }
//          vi=but_0;
//    }
//    @OnClick(R.id.btn_1) void changetext1(){
//        if(flag==1){
//            str="";
//            str+=1;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=1;
//            et_show.setText(str);
//        }
//        vi=but_1;
//    }
//    @OnClick(R.id.btn_2) void changetext2(){
//        if(flag==1){
//            str="";
//            str+=2;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=2;
//            et_show.setText(str);
//        }
//        vi=but_2;
//    }
//    @OnClick(R.id.btn_3) void changetext3(){
//        if(flag==1){
//            str="";
//            str+=3;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=3;
//            et_show.setText(str);
//        }
//        vi=but_3;
//    }
//    @OnClick(R.id.btn_4) void changetext4(){
//        if(flag==1){
//            str="";
//            str+=4;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=4;
//            et_show.setText(str);
//        }
//        vi=but_4;
//    }
//    @OnClick(R.id.btn_5) void changetext5(){
//        if(flag==1){
//            str="";
//            str+=5;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=5;
//            et_show.setText(str);
//        }
//        vi=but_5;
//    }
//    @OnClick(R.id.btn_6) void changetext6(){
//        if(flag==1){
//            str="";
//            str+=6;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=6;
//            et_show.setText(str);
//        }
//        vi=but_6;
//    }
//    @OnClick(R.id.btn_7) void changetext7(){
//        if(flag==1){
//            str="";
//            str+=7;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=7;
//            et_show.setText(str);
//        }
//        vi=but_7;
//    }
//    @OnClick(R.id.btn_8) void changetext8(){
//        if(flag==1){
//            str="";
//            str+=8;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=8;
//            et_show.setText(str);
//        }
//        vi=but_8;
//    }
//    @OnClick(R.id.btn_9) void changetext9(){
//        if(flag==1){
//            str="";
//            str+=9;
//            et_show.setText(str);
//            flag=0;
//        }else{
//            str+=9;
//            et_show.setText(str);
//        }
//        vi=but_9;
//    }
//    @OnClick(R.id.btn_add) void changetextadd(){
//        if(str!=""){
//            if(vi==but_add){
//                sign=1;
//            }else{
//                num2=Double.parseDouble(str);  //num2=3;
//                calculater();
//                str=""+result;
//                et_show.setText(str);
//                sign=1;
//                flag=1;
//                vi=but_add;
//            }
//
//        }
//    }
//    @OnClick(R.id.btn_sub) void changetextsub(){
//        if(str!=""){
//            if(vi==but_sub){
//                sign=2;
//            }else{
//                num2=Double.parseDouble(str);
//                calculater();
//                str=""+result;
//                et_show.setText(str);
//                sign=2;
//                flag=1;
//                vi=but_sub;
//            }
//        }
//    }
//    @OnClick(R.id.btn_mlt) void changetextmlt(){
//        if(str!=""){
//            if(vi==but_mlt){
//                sign=3;
//            }else{
//                num2=Double.parseDouble(str);
//                calculater();
//                str=""+result;
//                et_show.setText(str);
//                flag=1;
//                sign=3;
//                vi=but_mlt;
//            }
//        }
//    }
//    @OnClick(R.id.btn_div) void changetextdiv(){
//        if(str!=""){
//            if(vi==but_div){
//                sign=4;
//            }else{
//                num2=Double.parseDouble(str);
//                calculater();
//                str=""+result;
//                et_show.setText(str);
//                flag=1;
//                sign=4;
//                vi=but_div;
//            }
//        }
//    }
//    @OnClick(R.id.btn_spot) void changetextsopt(){
//        str=str+".";
//        et_show.setText(str);
//    }
//    @OnClick(R.id.btn_equal) void changetextequal(){
//        if(str!=""&&vi!=but_add&&vi!=but_sub&&vi!=but_mlt&&vi!=but_div){
//            num2=Double.parseDouble(str);
//            calculater();
//            str=""+result;
//            et_show.setText(str);
//            flag=1;
//            vi=but_equal;
//        }
//    }
//    @OnClick(R.id.btn_sqrt) void changetextsqrt(){
//        if(str!=""){
//            num2=Double.parseDouble(str);
//            result=Math.sqrt(num2);
//            str=""+result;
//            et_show.setText(str);
//        }
//    }
//    @OnClick(R.id.btn_square) void changetextsquare(){
//        if(str!=""){
//            num2=Double.parseDouble(str);
//            result=num2*num2;
//            str=""+result;
//            et_show.setText(str);
//        }
//    }
//    @OnClick(R.id.btn_sin) void changetextsin(){
//        if(str!=""){
//            num2=Double.parseDouble(str);
//            result=Math.sin(num2);
//            str=""+result;
//            et_show.setText(str);
//        }
//    }
//    @OnClick(R.id.btn_cos) void changetextcos(){
//        if(str!=""){
//            num2=Double.parseDouble(str);
//            result=Math.tan(num2);
//            str=""+result;
//            et_show.setText(str);
//        }
//    }
//    @OnClick(R.id.btn_tan) void changetexttan(){
//        if(str!=""){
//            num2=Double.parseDouble(str);
//            result=Math.tan(num2);
//            str=""+result;
//            et_show.setText(str);
//        }
//    }
//    @OnClick(R.id.btn_cot) void changetextcot(){
//        if(str!=""){
//            num2=Double.parseDouble(str);
//            result=(1/Math.tan(num2));
//            str=""+result;
//            et_show.setText(str);
//        }
//    }
//    @OnClick(R.id.clears) void changetextclears(){
//        str="";
//        et_show.setText(str);
//        vi=clears;
//    }
//    @OnClick(R.id.clearAll) void changetextclearAll(){
//        num1=0.0;num2=0;result=0.0;
//        str="";
//        et_show.setText(str);
//    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        menu.add(0, 1, 1, "退出");
        return super.onCreateOptionsMenu(menu);
    }
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == 1) {
            finish();
        }
        return super.onOptionsItemSelected(item);
    }
}

这里我注释掉的地方大家是不用看的...因为原本我是打算使用开源框架butterknife去实现findViewById()方法...觉得那样做会稍微的减少一下代码的书写量...但是没有实现成功,虽然是界面可以成功的显示,但是所有的按钮都无法被触发监听...如果有哪位大神明白的,请您指教我一下,小弟将感激不尽...

然后就是string.xml文件了.....

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Android_calculator</string>
    <string name="menu_settings">退出</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string name="et_show">show</string>
    <string name="clears">C</string>
    <string name="clearAll">清除</string>
    <string name="btn_1">1</string>
    <string name="btn_2">2</string>
    <string name="btn_3">3</string>
    <string name="btn_add">+</string>
    <string name="btn_4">4</string>
    <string name="btn_5">5</string>
    <string name="btn_6">6</string>
    <string name="btn_sub">-</string>
    <string name="btn_7">7</string>
    <string name="btn_8">8</string>
    <string name="btn_9">9</string>
    <string name="btn_mlt">*</string>
    <string name="btn_0">0</string>
    <string name="btn_spot">.</string>
    <string name="btn_equal">=</string>
    <string name="btn_div">/</string>
    <string name="btn_square">x^2</string>
    <string name="btn_sqrt">√x</string>
    <string name="btn_sin">sin</string>
    <string name="btn_cos">cos</string>
    <string name="btn_tan">tan</string>
    <string name="btn_cot">cot</string>
</resources>

这个文件相对就比较简单了....没什么过多的东西...下面这个是我自己源代码的全地址...很简单的东西....

 http://files.cnblogs.com/files/RGogoing/Android_calculator.zip

再发一个高端的....这个用到了集合框架...写的挺好的....相比之下我上面那个就是个渣渣...

 http://files.cnblogs.com/files/RGogoing/fxmjsjym_a5.zip

时间: 2024-10-11 18:48:08

Android 简单计算器源码....的相关文章

c 语言简单计算器源码

//  main.c //  计算器 //  Created by qianfeng on 14-7-15. //  Copyright (c) 2014年 ___FGY___. All rights reserved. //iPhone自带计算器不够好,由于你技术出众,你被安排去开发一款iOS新式计算器. /*项目经理认为计算器第一版要支持表达式求值,所以要求如下: 输入任意表达式 求出他的值(支持负数,不支持小数) 这里支持6种表达式 () * / + - ()优先级最高, * /优先级其次

android 网络框架 源码分析

android 网络框架 源码分析 导语: 最近想开发一个协议分析工具,来监控android app 所有的网络操作行为, 由于android 开发分为Java层,和Native层, 对于Native层我们只要对linux下所有网络I/O接口进行拦截即可,对于java 层,笔者对android 网络框架不是很了解,所以这个工具开发之前,笔者需要对android 的网络框架进行一个简单的分析. 分析结论: 1. android 的网络框架都是基于Socket类实现的 2. java 层Socket

Android -- 消息处理机制源码分析(Looper,Handler,Message)

android的消息处理有三个核心类:Looper,Handler和Message.其实还有一个Message Queue(消息队列),但是MQ被封装到Looper里面了,我们不会直接与MQ打交道,因此我没将其作为核心类.下面一一介绍: Looper Looper的字面意思是“循环者”,它被设计用来使一个普通线程变成Looper线程.所谓Looper线程就是循环工作的线程.在程序开发中(尤其是GUI开发中),我们经常会需要一个线程不断循环,一旦有新任务则执行,执行完继续等待下一个任务,这就是Lo

Android 开源项目源码解析(第二期)

Android 开源项目源码解析(第二期) 阅读目录 android-Ultra-Pull-To-Refresh 源码解析 DynamicLoadApk 源码解析 NineOldAnimations 源码解析 SlidingMenu 源码解析 Cling 源码解析 BaseAdapterHelper 源码分析 Side Menu.Android 源码解析 DiscreteSeekBar 源码解析 CalendarListView 源码解析 PagerSlidingTabStrip 源码解析 公共

Android俄罗斯方块游戏源码

Android俄罗斯方块游戏源码,Android经典游戏源码,不容错误,代码详细,适合想要搞游戏开发的人进行学习,直接可以跑,源码有超详细的注释. 玩着俄罗斯方块的的时候有背景歌曲.[最好使用真机测试,不然可能会报错] 简单代码如下,注释可谓详尽至极啊:        Handler m_handler = null;//负责接收消息        Timer timer = null;//负责发送消息        Data data = null;//存放游戏的数据,即二维数组,并负责二维数

[Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

1 前言 经过一周的奋战,终于从谷歌官网上下载最新的android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载android系统源码,修改定制,然后编译刷入安卓手机,想想还有点小激动呢.简单点说一句话--定制我们自己的MIUI,这就是android的魅力,这篇博客博主就来教大家实现自己的定制系统. 首先,要明白下面的基础知识: (1) 什么是aosp? aosp就是android open source p

使用eclipse调试android的framework源码

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=325492 这篇文章中的第3和第4章分别介绍了java和c/cpp代码的调试,调试可以大大减少log查看花费的工作量. (1)调试java代码已经验证过了,主要是在eclipse中建立一个相同package名的安卓应用工程, 工程目录中导入源码,并在java窗口打开:在DDMS中去指定要调试的thread,在Debug窗口打开源码设置断点: 如果目录结构能同包名,则可以直接调试 如果目

【转】Android 4.3源码的下载和编译环境的安装及编译

原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html  告诉windows用户一个不好的消息,windows环境下没法编译android源码.用cygwin?不行,因为cygwin模拟的环境太简单,编译android源码需要好多工具,比如gnupg flex bison gperf libsdl-dev libesd0-dev …有的环境还需要wine.单纯的cygwin肯定是不能满足需要的.那么windows环境

android 小说类源码制作教程源码下载

自己闲着没事制作了个小说软件用来自己看全本/连载小说, 翻页,字体大小,目录,自动更新 具体效果如下:奉献给大家下载查看... 下载APK效果查看地址: http://yun.baidu.com/s/1gdknYyJ 源码下载地址: http://download.csdn.net/detail/ainibaifenbai/7575817 android 小说类源码制作教程源码下载,布布扣,bubuko.com