gpt4 book ai didi

java - 我如何解决 android (java) 中的退格错误

转载 作者:行者123 更新时间:2023-12-04 08:10:31 24 4
gpt4 key购买 nike

我正在用java制作一个计算器应用程序。我添加了退格功能,它在屏幕上显示得很好,但是当计算完成后,它会显示一些 random value .
示例 :-
输入-1 : 963, 输入-2 : 78 但我按退格键删除了 8。
操作:输入 1 + 输入 2。
答案: 14.
输入-1 : 956, 输入-2 : 48 但我按退格键删除了 8。
操作:输入 1 + 输入 2。
答案: 8.
同样,如果我使用减法运算(带退格),那么它总是返回 0。
这是我的代码 backspace 👇🏻

   private String input, input2 ;
private Double input_number;

boolean Addition, Subtract, Multiplication, Division, mRemainder, decimal, add_sub;

num_backspace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String sample_input = (num_input.getText() + "");
input = sample_input.substring(0, sample_input.length() - 1);
num_input.setText(input);

if (input.contains(".")){
decimal = true;
}
else{
decimal = false;
}
}
});
这是我的代码 equals 👇🏻
            num_equals.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (Addition || Subtract || Multiplication || Division || mRemainder) {
input2 = (num_input.getText() + "");
}

if (Addition) {

float final_input = Float.parseFloat(input);
float final_input2 = Float.parseFloat(input2);
num_input.setText(new Float(final_input + final_input2 + "").toString().replaceAll("\\.?0*$", ""));
num_output.setText(new Float(final_input + final_input2 + "").toString().replaceAll("\\.?0*$", ""));
Addition = false;
}

if (Subtract) {

float final_input = Float.parseFloat(input);
float final_input2 = Float.parseFloat(input2);
num_input.setText(new Float(final_input - final_input2 + "").toString().replaceAll("\\.?0*$", ""));
num_output.setText(new Float(final_input - final_input2 + "").toString().replaceAll("\\.?0*$", ""));
Subtract = false;
}

if (Multiplication) {

float final_input = Float.parseFloat(input);
float final_input2 = Float.parseFloat(input2);
num_input.setText(new Float(final_input * final_input2 + "").toString().replaceAll("\\.?0*$", ""));
num_output.setText(new Float(final_input * final_input2 + "").toString().replaceAll("\\.?0*$", ""));
Multiplication = false;
}

if (Division) {
float final_input = Float.parseFloat(input);
float final_input2 = Float.parseFloat(input2);
num_input.setText(new Float(final_input / final_input2 + "").toString().replaceAll("\\.?0*$", ""));
num_output.setText(new Float(final_input / final_input2 + "").toString().replaceAll("\\.?0*$", ""));
Division = false;
}
if (mRemainder) {

float final_input = Float.parseFloat(input);
float final_input2 = Float.parseFloat(input2);
num_input.setText(new Float(final_input % final_input2 + "").toString().replaceAll("\\.?0*$", ""));
num_output.setText(new Float(final_input % final_input2 + "").toString().replaceAll("\\.?0*$", ""));
mRemainder = false;
}
}
});
如果你愿意,你可以在这里查看完整的代码👇🏻
https://github.com/vendz/Calculator/blob/master/app/src/main/java/com/example/calculator/MainActivity.java

最佳答案

嘿,您正在重置 input点击字段 backpress ,换你的backpress代码到下面,它会工作

num_backspace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String sample_input = (num_input.getText() + "");
String mInput = sample_input.substring(0, sample_input.length() - 1);
num_input.setText(mInput);

if (mInput.contains(".")){
decimal = true;
}
else{
decimal = false;
}
}
});

关于java - 我如何解决 android (java) 中的退格错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65986552/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com