Я новичок в Android Studio и программировании в целом, но хотел создать простое приложение, которое выполняет вычисления на основе введенных чисел.Идея состоит в том, чтобы иметь 4 EditText
поля, которые поддерживают десятичные цифры, где только 3 из 4 полей требуют ввода для работы вычисления.После ввода 3 из 4 полей мое приложение обнаружит, какое из 4 полей имеет пустое значение, и продолжит работу с другими 3 входами, чтобы вывести правильное число.Когда нажата клавиша «Вычислить» Button
, я хочу, чтобы в поле TextView
отображалось окончательное число.
Выполнение простого вычисления с использованием только одного EditText
, TextView
и Button
работает, но не может заставить работать обнаружение нулевого поля, когда я добавляю больше кода.
Цените любой ввод, который вы можете дать!
Редактировать:
Чтобы уточнить, мой простой расчет будет следующим:
editText * editText2 = editText3 * editText4
По сути, пользователю необходимо предоставить только 3 из 4 значений, и будет вычислено нулевое значение.
Например:
editText = 2
editText2 = 4
editText3 = null
editText4 = 1
Приложение определит, что editText3
не было предоставлено, и, следовательно, попытается вычислить его значение, используя приведенную выше формулу.В этом примере значение editText3
будет вычислено как 8 и отображено в поле textView
после того, как пользователь нажмет кнопку Вычислить 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));
}
}
Edit 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