Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
Performance Android计算器应用程序在单击没有数字的操作员后崩溃_Performance_Android Layout_Android Intent_Android Activity_Android Fragments - Fatal编程技术网

Performance Android计算器应用程序在单击没有数字的操作员后崩溃

Performance Android计算器应用程序在单击没有数字的操作员后崩溃,performance,android-layout,android-intent,android-activity,android-fragments,Performance,Android Layout,Android Intent,Android Activity,Android Fragments,我在Android上创建了一个计算器,但如果我不输入一个数字,我点击一个操作,我的应用程序就会崩溃,并说“不幸的是,你的应用程序名已经停止”,你能帮我解决这个问题吗?有什么办法捕捉到这个异常吗 btn1 = (Button) findViewById(R.id.btn1Id); btn2 = (Button) findViewById(R.id.btn2Id); btn3 = (Button) findViewById(R.id.btn3Id); btn4 = (

我在Android上创建了一个计算器,但如果我不输入一个数字,我点击一个操作,我的应用程序就会崩溃,并说“不幸的是,你的应用程序名已经停止”,你能帮我解决这个问题吗?有什么办法捕捉到这个异常吗

    btn1 = (Button) findViewById(R.id.btn1Id);
    btn2 = (Button) findViewById(R.id.btn2Id);
    btn3 = (Button) findViewById(R.id.btn3Id);
    btn4 = (Button) findViewById(R.id.btn4Id);
    btn5 = (Button) findViewById(R.id.btn5Id);
    btn6 = (Button) findViewById(R.id.btn6Id);
    btn7 = (Button) findViewById(R.id.btn7Id);
    btn8 = (Button) findViewById(R.id.btn8Id);
    btn9 = (Button) findViewById(R.id.btn9Id);
    btn0 = (Button) findViewById(R.id.btn0Id);

    btnPlus = (Button) findViewById(R.id.btnPlusId);
    btnMinus = (Button) findViewById(R.id.btnMinusId);
    btnTimes = (Button) findViewById(R.id.btnTimesId);
    btnDivide = (Button) findViewById(R.id.btnDivideId);
    btnModulo = (Button) findViewById(R.id.btnModuloId);
    btnEquals = (Button) findViewById(R.id.btnEqualsId);
    btnCA = (Button) findViewById(R.id.btnCAId);

    MainDisplay = (TextView) findViewById(R.id.MainDisplayId);

    try{

        btn1.setOnClickListener((OnClickListener) this);
        btn2.setOnClickListener((OnClickListener) this);
        btn3.setOnClickListener((OnClickListener) this);
        btn4.setOnClickListener((OnClickListener) this);
        btn5.setOnClickListener((OnClickListener) this);
        btn6.setOnClickListener((OnClickListener) this);
        btn7.setOnClickListener((OnClickListener) this);
        btn8.setOnClickListener((OnClickListener) this);
        btn9.setOnClickListener((OnClickListener) this);
        btn0.setOnClickListener((OnClickListener) this);
        btnPlus.setOnClickListener((OnClickListener) this);
        btnMinus.setOnClickListener((OnClickListener) this);
        btnTimes.setOnClickListener((OnClickListener) this);
        btnDivide.setOnClickListener((OnClickListener) this);
        btnModulo.setOnClickListener((OnClickListener) this);
        btnEquals.setOnClickListener((OnClickListener) this);

    }catch(Exception e){

    }

    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"1";
            MainDisplay.setText(getNum);

        }
    });
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"2";
            MainDisplay.setText(getNum);

        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"3";
            MainDisplay.setText(getNum);

        }
    });
    btn4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"4";
            MainDisplay.setText(getNum);

        }
    });
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"5";
            MainDisplay.setText(getNum);

        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"6";
            MainDisplay.setText(getNum);

        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"7";
            MainDisplay.setText(getNum);

        }
    });
    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"8";
            MainDisplay.setText(getNum);

        }
    });
    btn9.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"9";
            MainDisplay.setText(getNum);

        }
    });
    btn0.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"0";
            MainDisplay.setText(getNum);

        }
    });
    btnPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "+";
            MainDisplay.setText("");
        }
    });
    btnMinus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "-";
            MainDisplay.setText("");
        }
    });
    btnTimes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "*";
            MainDisplay.setText("");
        }
    });
    btnDivide.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "/";
            MainDisplay.setText("");
        }
    });
    btnModulo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "%";
            MainDisplay.setText("");
        }
    });
    btnEquals.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num2 = Integer.parseInt(MainDisplay.getText().toString());
            if(op=="+"){
            ans = num1 + num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="-"){
            ans = num1 - num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="*"){
            ans = num1 * num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="/"){
            ans = num1 / num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="%"){
            ans = num1 % num2;
            MainDisplay.setText(Integer.toString(ans));
            }
        }
    });

    btnCA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            MainDisplay.setText("");
        }
    });
}
enter code hereprotected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btn1 = (Button) findViewById(R.id.btn1Id);
    btn2 = (Button) findViewById(R.id.btn2Id);
    btn3 = (Button) findViewById(R.id.btn3Id);
    btn4 = (Button) findViewById(R.id.btn4Id);
    btn5 = (Button) findViewById(R.id.btn5Id);
    btn6 = (Button) findViewById(R.id.btn6Id);
    btn7 = (Button) findViewById(R.id.btn7Id);
    btn8 = (Button) findViewById(R.id.btn8Id);
    btn9 = (Button) findViewById(R.id.btn9Id);
    btn0 = (Button) findViewById(R.id.btn0Id);

    btnPlus = (Button) findViewById(R.id.btnPlusId);
    btnMinus = (Button) findViewById(R.id.btnMinusId);
    btnTimes = (Button) findViewById(R.id.btnTimesId);
    btnDivide = (Button) findViewById(R.id.btnDivideId);
    btnModulo = (Button) findViewById(R.id.btnModuloId);
    btnEquals = (Button) findViewById(R.id.btnEqualsId);
    btnCA = (Button) findViewById(R.id.btnCAId);

    MainDisplay = (TextView) findViewById(R.id.MainDisplayId);

    try{

        btn1.setOnClickListener((OnClickListener) this);
        btn2.setOnClickListener((OnClickListener) this);
        btn3.setOnClickListener((OnClickListener) this);
        btn4.setOnClickListener((OnClickListener) this);
        btn5.setOnClickListener((OnClickListener) this);
        btn6.setOnClickListener((OnClickListener) this);
        btn7.setOnClickListener((OnClickListener) this);
        btn8.setOnClickListener((OnClickListener) this);
        btn9.setOnClickListener((OnClickListener) this);
        btn0.setOnClickListener((OnClickListener) this);
        btnPlus.setOnClickListener((OnClickListener) this);
        btnMinus.setOnClickListener((OnClickListener) this);
        btnTimes.setOnClickListener((OnClickListener) this);
        btnDivide.setOnClickListener((OnClickListener) this);
        btnModulo.setOnClickListener((OnClickListener) this);
        btnEquals.setOnClickListener((OnClickListener) this);

    }catch(Exception e){

    }

    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"1";
            MainDisplay.setText(getNum);

        }
    });
    btn2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"2";
            MainDisplay.setText(getNum);

        }
    });
    btn3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"3";
            MainDisplay.setText(getNum);

        }
    });
    btn4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"4";
            MainDisplay.setText(getNum);

        }
    });
    btn5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"5";
            MainDisplay.setText(getNum);

        }
    });
    btn6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"6";
            MainDisplay.setText(getNum);

        }
    });
    btn7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"7";
            MainDisplay.setText(getNum);

        }
    });
    btn8.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"8";
            MainDisplay.setText(getNum);

        }
    });
    btn9.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"9";
            MainDisplay.setText(getNum);

        }
    });
    btn0.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            getNum = MainDisplay.getText().toString();
            getNum = getNum+"0";
            MainDisplay.setText(getNum);

        }
    });
    btnPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "+";
            MainDisplay.setText("");
        }
    });
    btnMinus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "-";
            MainDisplay.setText("");
        }
    });
    btnTimes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "*";
            MainDisplay.setText("");
        }
    });
    btnDivide.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "/";
            MainDisplay.setText("");
        }
    });
    btnModulo.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num1 = Integer.parseInt(MainDisplay.getText().toString());
            op = "%";
            MainDisplay.setText("");
        }
    });
    btnEquals.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            num2 = Integer.parseInt(MainDisplay.getText().toString());
            if(op=="+"){
            ans = num1 + num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="-"){
            ans = num1 - num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="*"){
            ans = num1 * num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="/"){
            ans = num1 / num2;
            MainDisplay.setText(Integer.toString(ans));
            }else if(op=="%"){
            ans = num1 % num2;
            MainDisplay.setText(Integer.toString(ans));
            }
        }
    });

    btnCA.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            MainDisplay.setText("");
        }
    });
}

我看不出你在哪里声明op,但我假设它是一个字符串

试一试


您的代码中也存在大量重复,可以编写一些方法来消除这种重复,而不是使用数百个侦听器,只使用一个或多个if语句

您是否尝试过将一堆代码塞进一个脚本中?
if(op.equals("")){
//Do nothing
}