我创建了一个计算器但我不能像{i} / android计算器那样在TextView
上显示数字。
例如,如果用户点击5 + 5.我希望5 + 5显示在textview上,一旦你点击等于它显示10.我已经尝试了不同的方法来解决这个问题,但我一直在收到错误。< / p>
ClearBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
TextView output = (TextView) findViewById(R.id.text_view);
output.setText("");
}
});
Button0.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "0");
}
});
Button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "1");
}
});
Button2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "2");
}
});
Button3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "3");
}
});
Button4.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "4");
}
});
Button5.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "5");
}
});
Button6.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "6");
}
});
Button7.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "7");
}
});
Button8.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "8");
}
});
Button9.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textView.setText(textView.getText() + "9");
}
});
// Operation Buttons
addBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(textView == null) {
textView.setText(" ");
} else {
firstValue = Double.parseDouble(textView.getText() + " ");
addition = true;
textView.setText(null);
}
}
});
subBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
firstValue = Double.parseDouble(textView.getText() + " ");
subtract = true;
textView.setText(null);
}
});
divideBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
firstValue = Double.parseDouble(textView.getText() + " ");
divison = true;
textView.setText(null);
}
});
multiBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
firstValue = Double.parseDouble(textView.getText() + " ");
multiplication = true;
textView.setText(null);
}
});
equalBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
secondValue = Double.parseDouble(textView.getText() + " ");
if(addition == true) {
textView.setText(firstValue + secondValue + " ");
addition = false;
}
if(subtract == true) {
textView.setText(firstValue - secondValue + " ");
subtract = false;
}
if(divison == true) {
textView.setText(firstValue / secondValue + " ");
divison = false;
}
if(multiplication == true) {
textView.setText(firstValue * secondValue + " ");
multiplication = false;
}
}
});
答案 0 :(得分:1)
NumberFormatException是一个可能在您抛出的异常 尝试将String转换为数字,其中该数字可能是一个数字 int,float或任何其他Java数字类型。
您可以使用 NumberFormat 和 Double 。
Double result = new Double(textView.getText().toString());
NumberFormat nm = NumberFormat.getNumberInstance();
textview.setText(nm.format(result)+ "3");
希望这会对你有所帮助。
答案 1 :(得分:0)
请你试试看它是否有效
firstValue = Double.parseDouble(textView.getText().toString().replaceAll(" ",""));
答案 2 :(得分:0)
只是一个引用,因为您创建了多个onClick侦听器,这些侦听器在您的代码中具有高度重复性。我建议你看一下Android: Use a SWITCH statement with setOnClickListener/onClick for more than 1 button?这样你就可以为多个按钮设置一个开关盒而不需要多个onClickListeners。祝你的计算器好运!