安卓编程运行时出错,提示unfortunately,my test has stopped

package com.example.mytest;

import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class exam extends AppCompatActivity {

private Button[] btnnum = new Button[11];
private Button[] btnop = new Button[13];
private TextView text = null;
private Button btnclear = null;
private static String op;
private boolean clear;
private double result;

public exam() {
    result = 0;
    clear = false;
    op = "=";
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_exam);
    //获取数字
    btnnum[0] = (Button) findViewById(R.id.s0);
    btnnum[1] = (Button) findViewById(R.id.s1);
    btnnum[2] = (Button) findViewById(R.id.s2);
    btnnum[3] = (Button) findViewById(R.id.s3);
    btnnum[4] = (Button) findViewById(R.id.s4);
    btnnum[5] = (Button) findViewById(R.id.s5);
    btnnum[6] = (Button) findViewById(R.id.s6);
    btnnum[7] = (Button) findViewById(R.id.s7);
    btnnum[8] = (Button) findViewById(R.id.s8);
    btnnum[9] = (Button) findViewById(R.id.s9);
    //获取操作符
    btnop[0] = (Button) findViewById(R.id.Percentage);
    btnop[1] = (Button) findViewById(R.id.CE);
    btnop[2] = (Button) findViewById(R.id.C);
    btnop[3] = (Button) findViewById(R.id.DEL);
    btnop[4] = (Button) findViewById(R.id.x1);
    btnop[5] = (Button) findViewById(R.id.x2);
    btnop[7] = (Button) findViewById(R.id.x3);
    btnop[8] = (Button) findViewById(R.id.divide);
    btnop[9] = (Button) findViewById(R.id.multiply);
    btnop[10] = (Button) findViewById(R.id.subtract);
    btnop[11] = (Button) findViewById(R.id.plus);
    btnop[12] = (Button) findViewById(R.id.complex);
    btnop[13] = (Button) findViewById(R.id.outcomn);
    //初始化显示界面
    text = (TextView) findViewById(R.id.show);
    text.setText("0.0");
    //实例化监听对象
    NumberAction na = new NumberAction();
    opAction oa = new opAction();
    for (Button bc : btnop) {
        bc.setOnClickListener((View.OnClickListener) oa);
    }
    for (Button bc : btnnum) {
        bc.setOnClickListener((View.OnClickListener) na);
    }
    //cleard的动作
    btnclear = (Button) findViewById(R.id.CE);
    btnclear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            text.setText("0.0");
            result = 0;
            clear = false;
            op = "=";
        }
    });
}

//数字的监听动作
private class NumberAction implements View.OnClickListener{
    @Override
    public void onClick(View v){
        Button btn = (Button) v;
        String input = btn.getText().toString();

        if (clear){
            text.setText("");
            clear=false;
        }
        text.setText(text.getText().toString() + input);
    }
}

//操作符的监听动作
public class opAction implements View.OnClickListener {
    @Override
    public void onClick(View v) {
        Button btn = (Button) v;
        String inputop = (String) btn.getText();
        if (!clear) {//调用计算方法
            calculate(Double.parseDouble(text.getText().toString()));
        }
        //保存操作符
        op = inputop;
        clear = true;
    }
}

public void calculate(double x) {
    if (op.equals("+")) {
        result += x;
    } else if (op.equals("-")) {
        result -= x;
    } else if (op.equals("*")) {
        result *= x;
    } else if (op.equals("/")) {
        result /= x;
    } else if (op.equals("%")) {
        result = x / 100;
    } else if (op.equals("1/x")) {
        result = 1 / x;
    } else if (op.equals("x2")) {
        result = x * x;
    } else if (op.equals("²√x")) {
        double k = 1;
        while (Math.abs(k * k - x) > 1e-5) {
            k = (k + x / k) / 2;
            result = k;
        }
        text.setText("" + result);
    }
}

}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".exam"
        android:orientation="vertical"
        >
    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <TextView
                android:id="@+id/show"
                android:layout_width="match_parent"
                android:layout_height="150dp"
                android:text="0.0"
                android:gravity="right"
                />
    </LinearLayout>

    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <Button
                android:id="@+id/Percentage"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="%"
                >

        </Button>
        <Button
                android:id="@+id/CE"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="CE"
                >

        </Button>
        <Button
                android:id="@+id/C"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="C"
                >

        </Button>
        <Button
                android:id="@+id/DEL"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="DEL"
                >

        </Button>
    </LinearLayout>

    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <Button
                android:id="@+id/x1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="1/x"
                >

        </Button>
        <Button
                android:id="@+id/x2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="x2"
                >

        </Button>
        <Button
                android:id="@+id/x3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="²√x"
                >

        </Button>
        <Button
                android:id="@+id/divide"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="/"
                >

        </Button>
    </LinearLayout>

    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <Button
                android:id="@+id/s7"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="7"
                >

        </Button>
        <Button
                android:id="@+id/s8"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="8"
                >

        </Button>
        <Button
                android:id="@+id/s9"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="9"
                >

        </Button>
        <Button
                android:id="@+id/multiply"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="*"
                >

        </Button>
    </LinearLayout>

    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <Button
                android:id="@+id/s4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="4"
                >

        </Button>
        <Button
                android:id="@+id/s5"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="5"
                >

        </Button>
        <Button
                android:id="@+id/s6"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="6"
                >

        </Button>
        <Button
                android:id="@+id/subtract"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="-"
                >

        </Button>
    </LinearLayout>

    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <Button
                android:id="@+id/s1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="1"
                >

        </Button>
        <Button
                android:id="@+id/s2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="2"
                >

        </Button>
        <Button
                android:id="@+id/s3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="3"
                >

        </Button>
        <Button
                android:id="@+id/add"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="+"
                >

        </Button>
    </LinearLayout>

    <LinearLayout
            android:layout_width="350dp"
            android:layout_height="wrap_content"
            >
        <Button
                android:id="@+id/complex"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="+/-"
                >

        </Button>
        <Button
                android:id="@+id/s0"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="0"
                >

        </Button>
        <Button
                android:id="@+id/xiaoshudian"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="."
                >

        </Button>
        <Button
                android:id="@+id/outcomn"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="="
                >

        </Button>
    </LinearLayout>


</LinearLayout>
```可以帮忙找一下错误嘛,路径没问题,应该是代码哪里有错了。

1个回答

ZYH_CKA
ZYH_CKA 谢谢了,我已经解决了:)
3 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐