Android 如何计算编辑文本框的总和?
大家好,我在处理这个问题上有点困难。我有5个编辑文本框,我要求用户在其中输入一个数字。然后我想计算编辑文本框的总和,并对总和做一些处理。然而,如果用户没有在所有的框中输入一个数字,我就遇到了麻烦 是否可以在框中输入默认值“0”,以防不是所有框都已填充,而是要计算的总和(尽管并非所有框都已填充)Android 如何计算编辑文本框的总和?,android,textview,calculator,Android,Textview,Calculator,大家好,我在处理这个问题上有点困难。我有5个编辑文本框,我要求用户在其中输入一个数字。然后我想计算编辑文本框的总和,并对总和做一些处理。然而,如果用户没有在所有的框中输入一个数字,我就遇到了麻烦 是否可以在框中输入默认值“0”,以防不是所有框都已填充,而是要计算的总和(尽管并非所有框都已填充) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_extra_question);
textBox1 = (EditText) findViewById(R.id.editText1);
textBox2 = (EditText) findViewById(R.id.editText2);
textBox3 = (EditText) findViewById(R.id.editText3);
textBox4 = (EditText) findViewById(R.id.editText4);
textBox5 = (EditText) findViewById(R.id.editText5);
buttON = (Button) findViewById(R.id.button1);
buttON.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
number1 = Integer.parseInt(textBox1.getText().toString());
number2 = Integer.parseInt(textBox2.getText().toString());
number3 = Integer.parseInt(textBox3.getText().toString());
number4 = Integer.parseInt(textBox4.getText().toString());
number5 = Integer.parseInt(textBox5.getText().toString());
sum = number1 + number2 + number3 + number4 + number5;
if(sum > 100)
{
Toast.makeText(getApplicationContext(), "Nice!", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(getApplicationContext(), "Fail!", Toast.LENGTH_LONG).show();
}
}
});
对每个号码执行以下操作:
number1 = textBox1.getText().toString().trim().isEmpty()?0:Integer.parseInt(textBox1.getText().trim().toString());
对每个号码执行以下操作:
number1 = textBox1.getText().toString().trim().isEmpty()?0:Integer.parseInt(textBox1.getText().trim().toString());
是的,你的想法是正确的。对于每个编辑文本,只需选中:
if(textBox1.getText().toString().equals(""))
{
number1 = 0;
}
else
number1 = Integer.parseInt(textBox1.getText().toString());
是的,你的想法是正确的。对于每个编辑文本,只需选中:
if(textBox1.getText().toString().equals(""))
{
number1 = 0;
}
else
number1 = Integer.parseInt(textBox1.getText().toString());
在这样的函数上创建
public int getIntFromString(String str) {
if (str != null) {
if (str.equalsIgnoreCase("")) {
return 0;
} else {
try {
return Integer.parseInt(str);
} catch (NumberFormatException e) {
return 0;
}
}
} else {
return 0;
}
}
那么你的代码应该是
number1 = getIntFromString(textBox1.getText().toString().trim());
number2 = getIntFromString(textBox2.getText().toString().trim());
number3 = getIntFromString(textBox3.getText().toString().trim());
number4 = getIntFromString(textBox4.getText().toString().trim());
number5 = getIntFromString(textBox5.getText().toString().trim());
在这样的函数上创建
public int getIntFromString(String str) {
if (str != null) {
if (str.equalsIgnoreCase("")) {
return 0;
} else {
try {
return Integer.parseInt(str);
} catch (NumberFormatException e) {
return 0;
}
}
} else {
return 0;
}
}
那么你的代码应该是
number1 = getIntFromString(textBox1.getText().toString().trim());
number2 = getIntFromString(textBox2.getText().toString().trim());
number3 = getIntFromString(textBox3.getText().toString().trim());
number4 = getIntFromString(textBox4.getText().toString().trim());
number5 = getIntFromString(textBox5.getText().toString().trim());
您必须使用下面的代码检查空字符串,并在每个缺少的值中输入“0”
number1 = textBox1.getText().toString().isEmpty()?0:Integer.parseInt(textBox1.getText().toString());
number2 = textBox2.getText().toString().isEmpty()?0:Integer.parseInt(textBox2.getText().toString());
number3 = textBox3.getText().toString().isEmpty()?0:Integer.parseInt(textBox3.getText().toString());
number4 = textBox4.getText().toString().isEmpty()?0:Integer.parseInt(textBox4.getText().toString());
number5 = textBox5.getText().toString().isEmpty()?0:Integer.parseInt(textBox5.getText().toString());
您必须使用下面的代码检查空字符串,并在每个缺少的值中输入“0”
number1 = textBox1.getText().toString().isEmpty()?0:Integer.parseInt(textBox1.getText().toString());
number2 = textBox2.getText().toString().isEmpty()?0:Integer.parseInt(textBox2.getText().toString());
number3 = textBox3.getText().toString().isEmpty()?0:Integer.parseInt(textBox3.getText().toString());
number4 = textBox4.getText().toString().isEmpty()?0:Integer.parseInt(textBox4.getText().toString());
number5 = textBox5.getText().toString().isEmpty()?0:Integer.parseInt(textBox5.getText().toString());
我建议在检查文本是否为空之前先删除文本中的空白:
textBox1.getText().toString().trim().isEmpty()代码>y不是。解析前也应该修剪我认为我不需要修剪(),因为它是一个数字文本框,用户不能使用数字以外的其他符号。我建议在检查文本是否为空之前修剪文本中的空白:textBox1.getText().toString().trim().isEmpty()代码>y不是。parseInt之前也应该修剪我认为我不需要修剪(),因为它是一个数字文本框,用户不能使用数字以外的其他符号。如果parseInt(str)
引发了NumberFormatException
,我建议让函数返回0(除非您只保证数字输入)。此外,还根据函数的实际功能为其指定了更明确的名称。关于名称,我在getIntFromStringOrZero()
行中考虑了一些问题,建议如果parseInt(str)
引发了NumberFormatException
,则函数返回0(除非您仅保证数字输入)。同时,根据函数的实际功能为其提供更明确的名称。关于名称,我在getIntFromStringOrZero()