Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何计算编辑文本框的总和?_Android_Textview_Calculator - Fatal编程技术网

Android 如何计算编辑文本框的总和?

Android 如何计算编辑文本框的总和?,android,textview,calculator,Android,Textview,Calculator,大家好,我在处理这个问题上有点困难。我有5个编辑文本框,我要求用户在其中输入一个数字。然后我想计算编辑文本框的总和,并对总和做一些处理。然而,如果用户没有在所有的框中输入一个数字,我就遇到了麻烦 是否可以在框中输入默认值“0”,以防不是所有框都已填充,而是要计算的总和(尽管并非所有框都已填充) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setC

大家好,我在处理这个问题上有点困难。我有5个编辑文本框,我要求用户在其中输入一个数字。然后我想计算编辑文本框的总和,并对总和做一些处理。然而,如果用户没有在所有的框中输入一个数字,我就遇到了麻烦

是否可以在框中输入默认值“0”,以防不是所有框都已填充,而是要计算的总和(尽管并非所有框都已填充)

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()