Как выполнить основные вычисления над полями EditText, содержащими числовые значения в Android Studio - PullRequest
0 голосов
/ 19 ноября 2018

Я новичок в 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

1 Ответ

0 голосов
/ 20 ноября 2018

Этот код может помочь вам, поскольку он определяет, какой из 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...