首页 > 解决方案 > 如何使用 radioButton 通过用户输入执行不同的方程式?

问题描述

我在使用单选按钮通过用户输入执行不同的计算时遇到问题。如果 radioButton.isChecked,用户插入其值并单击“计算”按钮,我无法检索答案。

我已经在 OnClickListener 中尝试了 if/else 语句,但是如果我选择相应的按钮,应用程序就会崩溃。

让我解释一下我的代码:

  1. 用户选择所需的单选按钮;
  2. 用户插入其数据并进行验证:该字段不能为空或只有一个点 (.)(作为不让应用程序崩溃的一种形式,并且它运行良好);
  3. 用户单击“计算”按钮,然后在 TextView 上检索其关于所选单选按钮的答案。

这里是:

calcbtn.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View view) {
   if (view.getId() == R.id.calcbtn){
     float n1, n2;
     String value1 = vol.getText().toString();     //storing user inputs
     String value2 = tempo.getText().toString();
     if (value1.equals("") || value1.equals(".")) { //validation starts in this line
         n1 = 0;
     } else {
         n1 = Float.parseFloat(value1);
     }
     if (value2.equals("") || value2.equals(".")) {
         n2 = 0;
     } else {
         n2 = Float.parseFloat(value2);
     }                                               //validation ends
     if (radioButton1.isChecked()){                  //calculation starts
         float ansA = n1/(n2*3);
             resultATextView.setText(String.format("The result A is: ", ansA));
         float ansB = n1/n2;
             resultBTextView.setText(String.format("The result B is: ", ansB));
       }
       else if (radioButton2.isChecked()){
         float ansC = (n1/n2)*20;
            resultCTextView.setText(String.format("The result C is: ", ansC));
         float ansD = (n1/n2)*60;
            resultDTextView.setText(String.format("The result D is: ", ansD));
       }
   }
}
});

我应该在每个受人尊敬的 TextView 中检索答案,但如果我只选择一个按钮,应用程序就会崩溃。我是 Java 初学者,非常感谢您的帮助。

标签: javaandroidvalidationradio-button

解决方案


可能由于输出而出现问题。没有格式化程序。

String.format("The result D is: ", ansD);

要使其提供正确的输出,请尝试:

String.format("The result A is: %.1f", ansA);
String.format("The result B is: %.1f", ansB);
String.format("The result C is: %.1f", ansC);
String.format("The result D is: %.1f", ansD);

在此处输入图像描述


推荐阅读