ZYH_CKA 2020-04-17 13:50 采纳率: 100%
浏览 273

安卓编程运行时出错,提示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条回答 默认 最新

  • dabocaiqq 2020-04-17 16:00
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀