Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 简单安卓计算器_Android_Calculator - Fatal编程技术网

Android 简单安卓计算器

Android 简单安卓计算器,android,calculator,Android,Calculator,我正在尝试建立一个简单的计算器。以下是活动文件: package com.example.calcsimple; import android.os.Bundle; import android.annotation.SuppressLint; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import andro

我正在尝试建立一个简单的计算器。以下是活动文件:

 package com.example.calcsimple;


import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu; 
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.view.View.OnClickListener;


public class MainActivity extends Activity {

Button btnClr , btn0 , btn1 , btn2 , btn3 , btn4, btn5 , btn6 , btn7 , btn8 , btn9 , btnAdd , btnSub , btnMul , btnDiv , btnEq;
TextView textView1 ; 
double i1 , i2 , result=0;
boolean newValue = false;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    textView1 = (TextView) findViewById(R.id.textView1);

    btnClr = (Button) findViewById(R.id.btnClr);
    btn0 = (Button) findViewById(R.id.btn0);
    btn1 = (Button) findViewById(R.id.btn1);
    btn2 = (Button) findViewById(R.id.btn2);
    btn3 = (Button) findViewById(R.id.btn3);
    btn4 = (Button) findViewById(R.id.btn4);
    btn5 = (Button) findViewById(R.id.btn5);
    btn6 = (Button) findViewById(R.id.btn6);
    btn7 = (Button) findViewById(R.id.btn7);
    btn8 = (Button) findViewById(R.id.btn8);
    btn9 = (Button) findViewById(R.id.btn9);
    btnAdd = (Button) findViewById(R.id.btnAdd);
    btnSub = (Button) findViewById(R.id.btnSub);
    btnMul = (Button) findViewById(R.id.btnMul);
    btnDiv = (Button) findViewById(R.id.btnDiv);
    btnEq = (Button) findViewById(R.id.btnEq);

    btn0.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

            textView1.append("0");
        }
    });

    btn1.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("1");
             else
                 textView1.setText(textView1.getText().toString() +  "1");

             newValue = false;
        }
    });

    btn2.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("2");
             else
                 textView1.setText(textView1.getText().toString() +  "2");

             newValue = false;
        }
    });

    btn3.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("3");
             else
                 textView1.setText(textView1.getText().toString() +  "3");

             newValue = false;
        }
    });

    btn4.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("4");
             else
                 textView1.setText(textView1.getText().toString() +  "4");

             newValue = false;
        }
    });

    btn5.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("5");
             else
                 textView1.setText(textView1.getText().toString() +  "5");

             newValue = false;
        }
    });

    btn6.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("6");
             else
                 textView1.setText(textView1.getText().toString() +  "6");

             newValue = false;
        }
    });

    btn7.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("7");
             else
                 textView1.setText(textView1.getText().toString() +  "7");

             newValue = false;
        }
    });

    btn8.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("8");
             else
                 textView1.setText(textView1.getText().toString() +  "8");

             newValue = false;
        }
    });

    btn9.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

             if(newValue == true)
                 textView1.setText("9");
             else
                 textView1.setText(textView1.getText().toString() +  "9");

             newValue = false;
        }
    });


    btnAdd.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

            i1 = Double.parseDouble(textView1.getText().toString());
            textView1.setText("");
            result = result + i1;
            textView1.setText(Double.toString(result));
            newValue=true ;  


        }
    });

    btnSub.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

            i1 = Double.parseDouble(textView1.getText().toString());
            result = result - i1;
            textView1.setText(Double.toString(result));
            newValue=true ;  
            textView1.setText("");
        }
    });

    btnMul.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {
            i1 = Double.parseDouble(textView1.getText().toString());
            result = result * i1;
            textView1.setText(Double.toString(result));
            newValue=true ;  
            textView1.setText("");
        }
    });

    btnDiv.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

            i1 = Double.parseDouble(textView1.getText().toString());
            result = result / i1;
            textView1.setText(Double.toString(result));
            newValue=true ;  
            textView1.setText("");

        }
    });

    btnEq.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

            textView1.setText(Double.toString(result));
        }
    });

    btnClr.setOnClickListener(new OnClickListener(){
        @Override
        public void onClick(View v) {

            textView1.setText("");
            newValue=true;
            result = 0 ;
            i1=0;
        }
    });

    }


}
以下是XML布局文件:

<AbsoluteLayout 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" >

<Button
    android:id="@+id/btn1"
    android:layout_width="44dp"
    android:layout_height="wrap_content"
    android:layout_x="6dp"
    android:layout_y="109dp"
    android:text="1" />

<Button
    android:id="@+id/btn2"
    android:layout_width="48dp"
    android:layout_height="wrap_content"
    android:layout_x="88dp"
    android:layout_y="108dp"
    android:text="2" />

<Button
    android:id="@+id/btn3"
    android:layout_width="44dp"
    android:layout_height="wrap_content"
    android:layout_x="174dp"
    android:layout_y="106dp"
    android:text="3" />

<Button
    android:id="@+id/btn4"
    android:layout_width="45dp"
    android:layout_height="wrap_content"
    android:layout_x="6dp"
    android:layout_y="184dp"
    android:text="4" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="30dp"
    android:layout_x="0dp"
    android:layout_y="4dp"
    android:text="" />

<Button
    android:id="@+id/btn5"
    android:layout_width="45dp"
    android:layout_height="wrap_content"
    android:layout_x="92dp"
    android:layout_y="186dp"
    android:text="5" />

<Button
    android:id="@+id/btn6"
    android:layout_width="45dp"
    android:layout_height="wrap_content"
    android:layout_x="175dp"
    android:layout_y="180dp"
    android:text="6" />

<Button
    android:id="@+id/btn7"
    android:layout_width="44dp"
    android:layout_height="wrap_content"
    android:layout_x="9dp"
    android:layout_y="261dp"
    android:text="7" />

<Button
    android:id="@+id/btn8"
    android:layout_width="44dp"
    android:layout_height="wrap_content"
    android:layout_x="94dp"
    android:layout_y="264dp"
    android:text="8" />

<Button
    android:id="@+id/btn9"
    android:layout_width="46dp"
    android:layout_height="wrap_content"
    android:layout_x="176dp"
    android:layout_y="263dp"
    android:text="9" />

<Button
    android:id="@+id/btn0"
    android:layout_width="45dp"
    android:layout_height="wrap_content"
    android:layout_x="96dp"
    android:layout_y="348dp"
    android:text="0" />

<Button
    android:id="@+id/btnAdd"
    android:layout_width="45dp"
    android:layout_height="wrap_content"
    android:layout_x="248dp"
    android:layout_y="105dp"
    android:text="+" />

<Button
    android:id="@+id/btnSub"
    android:layout_width="43dp"
    android:layout_height="wrap_content"
    android:layout_x="249dp"
    android:layout_y="181dp"
    android:text="-" />

<Button
    android:id="@+id/btnMul"
    android:layout_width="43dp"
    android:layout_height="wrap_content"
    android:layout_x="248dp"
    android:layout_y="267dp"
    android:text="X" />

<Button
    android:id="@+id/btnDiv"
    android:layout_width="44dp"
    android:layout_height="wrap_content"
    android:layout_x="248dp"
    android:layout_y="347dp"
    android:text="/" />

<Button
    android:id="@+id/btnEq"
    android:layout_width="44dp"
    android:layout_height="wrap_content"
    android:layout_x="176dp"
    android:layout_y="347dp"
    android:text="=" />

<Button
    android:id="@+id/btnClr"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_x="12dp"
    android:layout_y="346dp"
    android:text="Clear" />

</AbsoluteLayout>


现在的问题是,我找不到任何方法来接收和存储来自用户的第二个操作数。

从您的代码中,两个操作数似乎要输入到相同的
TextView
。首先输入第一个操作数,然后按任意运算符,然后在相同的
TextView
中输入第二个操作数。此外,每个操作数似乎都由单独的按钮处理,因此只需单击按钮即可输入它们

首先,输入第一个操作数,单击运算符,然后单击第二个操作数,然后单击
=
。这对你来说应该很好。

'你可以试试这个代码。'
'you can try this code..'
package com.example.showoff;

import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.text.method.DigitsKeyListener;
import android.view.Menu;
import android.view.View;
import android.widget.Button;


import android.widget.TextView;

public class MainActivity extends Activity {

        TextView edittest1;

        Button one, two, three, four, five, six, seven, eight, nine, zero, add, sub, mul, div, cancel, equal;

        ArrayList<Float> math = new ArrayList<Float>();
        float m1;
        float m2;
        float temp;

        int currentOperation = 0;
        int nextOperation;

        final static int ADD = 1;
        final static int SUBTRACT = 2;
        final static int MULTIPLY =3;
        final static int DIVISION = 4;
        final static int EQUALS = 0;
        final static int CLEAR = 1;
        final static int DONT_CLEAR = 0;
        int clearDisplay = 0;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

            edittest1 = (TextView) findViewById(R.id.edittest1);



            one =(Button) findViewById(R.id.btnNum1Id);
            two =(Button) findViewById(R.id.btnNum2Id);
            three =(Button) findViewById(R.id.btnNum3Id);
            four =(Button) findViewById(R.id.btnNum4Id);
            five =(Button) findViewById(R.id.btnNum5Id);
            six =(Button) findViewById(R.id.btnNum6Id);
            seven =(Button) findViewById(R.id.btnNum7Id);
            eight =(Button) findViewById(R.id.btnNum8Id);
            nine =(Button) findViewById(R.id.btnNum9Id);
            zero =(Button) findViewById(R.id.btnNum0Id);
            add =(Button) findViewById(R.id.btnNumAddId);
            sub =(Button) findViewById(R.id.btnNumSubId);
            mul =(Button) findViewById(R.id.btnNumMulId);
            div =(Button) findViewById(R.id.btnNumDivId);
            cancel =(Button) findViewById(R.id.btnNumClearId);
            equal =(Button) findViewById(R.id.btnNumEqualId);

            edittest1.setKeyListener(DigitsKeyListener.getInstance(true,true));

            registerListeners();


    }

    private void registerListeners() {
        // TODO Auto-generated method stub

        one.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                    edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
               edittest1.append("1");

            }
        });

        two.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                    edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("2");

            }
        });

        three.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                   edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("3");

            }
        });
        four.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                  edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("4");

            }
        });

        five.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                   edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("5");

            }
        });

        six.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                   edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("6");

            }
        });
        seven.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                    edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("7");

            }
        });

        eight.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                    edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("8");

            }
        });

        nine.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                    edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("9");

            }
        });
        zero.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (clearDisplay == CLEAR) {
                    edittest1.setText("");
                }
                clearDisplay = DONT_CLEAR;
                edittest1.append("0");

            }
        });
        add.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {


                calcLogic(ADD);
                }
            }
        );

        sub.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                calcLogic(SUBTRACT);
            }               
        });
        mul.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                calcLogic(MULTIPLY);

            }
        });
        div.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                calcLogic(DIVISION);                    
            }
        });
        equal.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                calcLogic(EQUALS);

            }
        });
        cancel.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                edittest1.setText("0");
                m1 = 0;
                m2 = 0;
                math.removeAll(math);
                currentOperation = 0;
                nextOperation = 0;    

            }
        });


}
    private void calcLogic(int operator){
         math.add(Float.parseFloat(edittest1.getText().toString()));

            if (operator != EQUALS) {
                nextOperation = operator;
            }
            else if  (operator == EQUALS){
                nextOperation = 0;
                //operator=' ';
            }



            switch (currentOperation) {
            case ADD:               
                m1 = math.get(0);
                m2 = math.get(1);

                math.removeAll(math);

                math.add(m1 + m2);


                edittest1.setText(String.format("%.3f", math.get(0)));



                break;
            case SUBTRACT:
                m1 = math.get(0);
                m2 = math.get(1);

                math.removeAll(math);

                math.add(m1 - m2);

                edittest1.setText(String.format("%.3f", math.get(0)));
                break;
            case MULTIPLY:
                m1 = math.get(0);
                m2 = math.get(1);

                math.removeAll(math);

                math.add(m1 * m2);

                edittest1.setText(String.format("%.3f", math.get(0)));
                break;
            case DIVISION:
                m1 = math.get(0);
                m2 = math.get(1);

                math.removeAll(math);

                math.add(m1 / m2);

                edittest1.setText(String.format("%.3f", math.get(0)));
                break;
            }

            clearDisplay = CLEAR;
            currentOperation = nextOperation;
            if (operator == EQUALS) {
                m1 = 0;
                m2 = 0;
                math.removeAll(math);
            }

        }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
包com.example.shooff; 导入java.util.ArrayList; 导入android.os.Bundle; 导入android.app.Activity; 导入android.text.method.DigitsKeyListener; 导入android.view.Menu; 导入android.view.view; 导入android.widget.Button; 导入android.widget.TextView; 公共类MainActivity扩展了活动{ TextView编辑测试1; 按钮一,二,三,四,五,六,七,八,九,零,加,分,多,除,取消,相等; ArrayList math=新的ArrayList(); 浮动m1; 浮动m2; 浮子温度; int currentOperation=0; 国际下一步行动; 最终静态整数相加=1; 最终静态整数减去=2; 最终静态整数乘=3; 最终静态整数除法=4; 最终静态int等于0; 最终静态int CLEAR=1; 最终静态整数不清除=0; int clearDisplay=0; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); edittest1=(TextView)findViewById(R.id.edittest1); 一=(按钮)findViewById(R.id.btnNum1Id); 二=(按钮)findViewById(R.id.btnNum2Id); 三=(按钮)findViewById(R.id.btnNum3Id); 四=(按钮)findViewById(R.id.btnNum4Id); 五=(按钮)findViewById(R.id.btnNum5Id); 六=(按钮)findViewById(R.id.btnNum6Id); seven=(按钮)findviewbyd(R.id.btnNum7Id); 八=(按钮)findViewById(R.id.btnNum8Id); 九=(按钮)findViewById(R.id.btnNum9Id); 零=(按钮)findViewById(R.id.btnNum0Id); 添加=(按钮)findViewById(R.id.btnnumadded); sub=(按钮)findViewById(R.id.btnNumSubId); mul=(按钮)findviewbyd(R.id.btnnumulid); div=(按钮)findviewbyd(R.id.btnNumDivId); 取消=(按钮)findViewById(R.id.btnNumClearId); 相等=(按钮)findViewById(R.id.btnNumEqualId); edittest1.setKeyListener(DigitKeyListener.getInstance(true,true)); registerListeners(); } 私有无效注册表侦听器(){ //TODO自动生成的方法存根 一个.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“1”); } }); setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“2”); } }); 三个.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“3”); } }); setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“4”); } }); 5.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“5”); } }); setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“6”); } }); 七.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“7”); } }); setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ edittest1.setText(“”); } clearDisplay=不清除; edittest1.附加(“8”); } }); 9.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图v){ 如果(清除显示==清除){ 伊迪特