Так выглядит код: сначала он работал правильно, но после добавления новых функций кнопок этот сегмент кода не работал должным образом, как раньше. Пожалуйста, помогите мне, у меня есть представление в среду на этой неделе. Возможно, это ошибка?
package com.example.calculator;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity{
TextView txtbtn;
float mValueOne, mValueTwo;
double a;
double ans=0;
boolean mAddition, mSubtract, mMultiplication, mDivision, mArithmetic, mReminder,
power2nd, mSin, mCos, mTan, mSinH, mCosH, mTanH;
ImageButton deletebutton;
Button clearbutton, dividebutton, multiplybutton, button7, button8, button9, minusbutton,
button4, button5, button6, plusbutton, button1, button2, button3, button0, pointbutton,
equalbutton, xcubebutton, squarebutton, modulusbutton, exponentbutton, tenexponentbutton,
piebutton, squarerootbutton, cuberootbutton, stpower2nd, xfactorialbutton, logbutton, lnbutton,
sinbutton, cosbutton, tanbutton, sinhbutton, coshbutton, tanhbutton, oneoverxbutton, absbutton,
floorbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
//| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
//| View.SYSTEM_UI_FLAG_FULLSCREEN);
scientific_operation();
}
public void scientific_operation(){
txtbtn = findViewById(R.id.txt);
deletebutton = findViewById(R.id.BB);
clearbutton = findViewById(R.id.C);
dividebutton = findViewById(R.id.Bdivide);
multiplybutton = findViewById(R.id.Bmulti);
button7 = findViewById(R.id.B7);
button8 = findViewById(R.id.B8);
button9 = findViewById(R.id.B9);
minusbutton = findViewById(R.id.Bsubtract);
button4 = findViewById(R.id.B4);
button5 = findViewById(R.id.B5);
button6 = findViewById(R.id.B6);
plusbutton = findViewById(R.id.Bplus);
button1 = findViewById(R.id.B1);
button2 = findViewById(R.id.B2);
button3 = findViewById(R.id.B3);
button0 = findViewById(R.id.B0);
pointbutton = findViewById(R.id.MCdot);
equalbutton = findViewById(R.id.Bequal);
cuberootbutton = findViewById(R.id.cuberoot);
squarerootbutton = findViewById(R.id.squareroot);
xcubebutton = findViewById(R.id.powerX3);
squarebutton = findViewById(R.id.powerX2);
modulusbutton = findViewById(R.id.Bmod);
exponentbutton = findViewById(R.id.expower);
tenexponentbutton = findViewById(R.id.X10X);
piebutton = findViewById(R.id.pi);
oneoverxbutton = findViewById(R.id.onebyx);
xfactorialbutton = findViewById(R.id.xfactorial);
stpower2nd = findViewById(R.id.power2nd);
logbutton = findViewById(R.id.log);
lnbutton = findViewById(R.id.ln);
sinhbutton = findViewById(R.id.arcsin);
coshbutton = findViewById(R.id.arccos);
tanhbutton = findViewById(R.id.arctan);
sinbutton = findViewById(R.id.sin);
cosbutton = findViewById(R.id.cos);
tanbutton = findViewById(R.id.tan);
absbutton = findViewById(R.id.abs);
floorbutton = findViewById(R.id.floor);
absbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
a = Math.abs(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
floorbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.floor(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
stpower2nd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mValueOne = Float.parseFloat(txtbtn.getText() + "");
power2nd = true;
txtbtn.setText(null);
}
catch(Exception e){
//
}
}
});
deletebutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
try{
String str;
str = txtbtn.getText().toString();
str = str.substring(0, str.length()-1);
txtbtn.setText(str);
}
catch(Exception e){
//
}
}
});
clearbutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
txtbtn.setText("");
}
});
dividebutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
txtbtn.setText(null);
}
});
button1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "1");
mArithmetic = true;
}
});
button2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "2");
mArithmetic = true;
}
});
button3.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "3");
mArithmetic = true;
}
});
button4.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "4");
mArithmetic = true;
}
});
button5.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "5");
mArithmetic = true;
}
});
button6.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "6");
mArithmetic = true;
}
});
button7.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "7");
mArithmetic = true;
}
});
button8.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "8");
mArithmetic = true;
}
});
button9.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "9");
mArithmetic = true;
}
});
button0.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
txtbtn.setText(txtbtn.getText()+ "0");
mArithmetic = true;
}
});
plusbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mValueOne = Float.parseFloat(txtbtn.getText() + "");
mAddition = true;
txtbtn.setText(null);
}
catch(Exception e){
//
}
}
});
minusbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mValueOne = Float.parseFloat(txtbtn.getText() + "");
mSubtract = true;
txtbtn.setText(null);
}
catch(Exception e){
//
}
}
});
multiplybutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mValueOne = Float.parseFloat(txtbtn.getText() + "");
mMultiplication = true;
txtbtn.setText(null);
}
catch(Exception e){
//
}
}
});
dividebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mValueOne = Float.parseFloat(txtbtn.getText() + "");
mDivision = true;
txtbtn.setText(null);
}
catch(Exception e){
//
}
}
});
cuberootbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.cbrt(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
squarerootbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.sqrt(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
xcubebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.pow(Double.parseDouble(txtbtn.getText().toString()), 3);
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
squarebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.pow(Double.parseDouble(txtbtn.getText().toString()), 2);
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
modulusbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
mValueOne = Float.parseFloat(txtbtn.getText() + "");
mReminder = true;
txtbtn.setText(null);
}
catch(Exception e){
//
}
}
});
exponentbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.exp(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
tenexponentbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
int n = Integer.parseInt(txtbtn.getText().toString());
int exp = (int) Math.pow(10,n);
txtbtn.setText(exp + "");
}
catch(Exception e){
//
}
}
});
piebutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtbtn.setText(Math.PI + "");
}
});
oneoverxbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = 1/Double.parseDouble(txtbtn.getText().toString());
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
xfactorialbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Double.parseDouble(txtbtn.getText().toString());
int er = 0; double i, s = 1;
if(a < 0){
er = 20;
}
else{
for(i = 2; i <= a; i += 1.0)
s *= i;
}
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + s);
}
catch(Exception e){
//
}
}
});
logbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
a = Math.log10(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e){
//
}
}
});
lnbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
a = Math.log(Double.parseDouble(txtbtn.getText().toString()));
txtbtn.setText("");
txtbtn.setText(txtbtn.getText().toString() + a);
}
catch(Exception e) {
//
}
}
});
sinhbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
txtbtn.setText("arc_sin");
mSinH = true;
}
});
coshbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
txtbtn.setText("arc_cos");
mCosH = true;
}
});
tanhbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
txtbtn.setText("arc_tan");
mTanH = true;
}
});
sinbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtbtn.setText("sin");
mSin = true;
}
});
cosbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtbtn.setText("cos");
mCos = true;
}
});
tanbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtbtn.setText("tan");
mTan = true;
}
});
exponentbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try{
Double n = Double.parseDouble(txtbtn.getText().toString());
Double exp = Math.pow(2.718281828, n);
txtbtn.setText(exp + "");
}
catch(Exception e){
//
}
}
});
equalbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mSinH){
if(mArithmetic){
String str;
str = txtbtn.getText().toString();
str = str.substring(4);
a = Math.asin(Double.parseDouble(str));
txtbtn.setText(a + "");
mArithmetic = false;
mSinH = false;
}
}
if(mCosH){
if(mArithmetic){
String str;
str = txtbtn.getText().toString();
str = str.substring(4);
a = Math.acos(Double.parseDouble(str));
txtbtn.setText(a + "");
mArithmetic = false;
mCosH = false;
}
}
if(mTanH){
if(mArithmetic){
String str;
str = txtbtn.getText().toString();
str = str.substring(4);
a = Math.atan(Double.parseDouble(str));
txtbtn.setText(a + "");
mArithmetic = false;
mTanH = false;
}
}
if(mAddition){
mValueTwo = Float.parseFloat(txtbtn.getText() + "");
txtbtn.setText(mValueOne + mValueTwo + "");
mAddition = false;
}
if(mSubtract){
mValueTwo = Float.parseFloat(txtbtn.getText() + "");
txtbtn.setText(mValueOne - mValueTwo + "");
mSubtract = false;
}
if(mMultiplication){
mValueTwo = Float.parseFloat(txtbtn.getText() + "");
txtbtn.setText(mValueOne * mValueTwo + "");
mMultiplication = false;
}
if(mDivision){
mValueTwo = Float.parseFloat(txtbtn.getText() + "");
txtbtn.setText(mValueOne / mValueTwo + "");
mDivision = false;
}
if(mReminder){
mValueTwo = Float.parseFloat(txtbtn.getText() + "");
txtbtn.setText(mValueOne % mValueTwo + "");
mReminder = false;
}
if(power2nd){
mValueTwo = Float.parseFloat(txtbtn.getText() + "");
double exp = Math.pow(mValueOne, mValueTwo);
txtbtn.setText(exp + "");
power2nd = false;
}
if(mSin){
if(mArithmetic){
String str;
str = txtbtn.getText().toString();
str = str.substring(3);
a = Math.sin(Double.parseDouble(str));
txtbtn.setText(a + "");
mArithmetic = false;
mSin = false;
}
}
if(mCos){
if(mArithmetic){
String str;
str = txtbtn.getText().toString();
str = str.substring(3);
a = Math.cos(Double.parseDouble(str));
txtbtn.setText(a + "");
mArithmetic = false;
mCos = false;
}
}
if(mTan){
if(mArithmetic){
String str;
double a;
str = txtbtn.getText().toString();
str = str.substring(3);
a = Math.tan(Float.parseFloat(str));
txtbtn.setText(a + "");
mArithmetic = false;
mTan = false;
}
}
ans = Double.parseDouble(txtbtn.getText().toString());
}
});
pointbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtbtn.setText(txtbtn.getText() + ".");
}
});
}
}
Это ошибка программы, которую она показала, я пытался найти несколько вопросов на этой странице, но на самом деле я не получил ожидаемый ответ
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.calculator, PID: 1574
java.lang.NumberFormatException: For input string: "sin1"
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at com.example.calculator.MainActivity$40.onClick(MainActivity.java:536)
at android.view.View.performClick(View.java:7125)
at android.view.View.performClickInternal(View.java:7102)
at android.view.View.access$3500(View.java:801)
at android.view.View$PerformClick.run(View.java:27336)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)