如何在Android Studio中对包含数值的EditText字段执行基本计算

时间:2018-11-19 20:17:57

标签: android android-studio

我是Android Studio和程序设计的新手,但我想创建一个简单的应用程序,该应用程序根据输入的数字进行计算。这个想法是让4个EditText字段支持十进制数字,其中4个字段中只有3个需要输入才能进行计算。在4个字段中输入3个之后,我的应用程序将检测4个字段中的哪个字段为空,并继续进行其他3个输入以输出正确的数字。当按下“计算” Button时,我要在TextView字段中显示最终数字。

仅使用一个EditTextTextView和一个Button执行一次简单的计算就可以了,但是当我添加更多代码时,似乎无法使空字段检测工作。

感谢您可以提供的任何意见!

编辑:

为了澄清,我的简单计算将是:

editText * editText2 = editText3 * editText4

基本上,用户只需提供4个值中的3个,便会计算出空值。

例如:

editText = 2
editText2 = 4
editText3 = null
editText4 = 1

应用程序将确定未提供editText3,因此,尝试使用上述公式计算其值。在此示例中,用户点击“计算editText3”之后,textView的值将被计算为 8 ,并显示在button字段中。

我在Vero Gorena的建议之后使用的代码是(尽管我仍然在编译时遇到问题!):

public class MainActivity extends AppCompatActivity {
    EditText editText1;
    EditText editText2;
    EditText editText3;
    EditText editText4;
    TextView textView;
    Button button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=findViewById(R.id.textView);
        editText1=findViewById(R.id.editText);
        editText2=findViewById(R.id.editText2);
        editText3=findViewById(R.id.editText3);
        editText4=findViewById(R.id.editText4);
    }


    // Detects whether a field is null
    public String getTheNumber(View view){
        if(editText1.getText().length()>0){Toast.makeText(this,"1 Has data",Toast.LENGTH_LONG).show();}
        if(editText2.getText().length()>0){Toast.makeText(this,"2 Has data",Toast.LENGTH_LONG).show();}
        if(editText3.getText().length()>0){Toast.makeText(this,"3 Has data",Toast.LENGTH_LONG).show();}
        if(editText4.getText().length()>0){Toast.makeText(this,"4 Has data",Toast.LENGTH_LONG).show();}

        return null;
    }


    // Calculates and displays the result
    private void calculateResult() throws NumberFormatException {

        // Calculates the result
        int result = editText1 * editText2 = editText3 * editText4;

        // Displays the result
        textView.setText(result.toString());

        // Displays result to 2 decimal places
        textView.setText(String.format("%1.2f", result));
    }


}

编辑2:

刚意识到我的公式需要分解为4种情况:

If editText = null, then result = editText3 * editText4 / editText2
If editText2 = null, then result = editText3 * editText4 / editText
If editText3 = null, then result = editText * editText2 / editText4
If editText4 = null, then result = editText * editText2 / editText3

1 个答案:

答案 0 :(得分:0)

此代码可以帮助您,因为它可以检测到哪个EditText有数字,并且可以使用自己的代码来代替Toast.makeText。 函数getTheNumber已经考虑返回数据,在这种情况下为String

   public class MainActivity extends AppCompatActivity {
        EditText editText1;
        EditText editText2; 
        EditText editText3; 
        EditText editText4;
        TextView textView;
        Button button;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView=findViewById(R.id.textView_atXML);
        editText1=findViewById(R.id.editText1_atXML);
        editText2=findViewById(R.id.editText2_atXML);
        editText3=findViewById(R.id.editText3_atXML);
        editText4=findViewById(R.id.editText4_atXML);



    }
    public String getTheNumber(View view){
        if(editText1.getText().length()>0){Toast.makeText(this,"1 Has data",Toast.LENGTH_LONG).show();}
        if(editText2.getText().length()>0){Toast.makeText(this,"2 Has data",Toast.LENGTH_LONG).show();}
        if(editText3.getText().length()>0){Toast.makeText(this,"3 Has data",Toast.LENGTH_LONG).show();}
        if(editText4.getText().length()>0){Toast.makeText(this,"4 Has data",Toast.LENGTH_LONG).show();}

        return null;
    }
}