Использование значения счетчика в операторе if - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь использовать раскрывающееся меню на основе счетчика, и как только значение из раскрывающегося меню выбрано, я хочу сохранить его, а затем использовать его далее в операторе if, когда предполагается, что вычисления произойдут. Вот код, который у меня пока есть:

 public class ItemSelectedListener implements AdapterView.OnItemSelectedListener {

    //get strings of first item
    String firstItem = String.valueOf(spinner.getSelectedItem());

    public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
        if (firstItem.equals(String.valueOf(spinner.getSelectedItem()))) {

        } else {
            String item = parent.getItemAtPosition(pos).toString();

        }
    }
    @Override
    public void onNothingSelected(AdapterView<?> arg) {

    }

public void CalculateBMR(View v) {
    String heightStr = height.getText().toString();
    String weightStr = weight.getText().toString();
    String sexStr = sex.getText().toString();
    String ageStr = age.getText().toString();
    String actItemStr = firstItem;


    if (heightStr != null && !"".equals(heightStr)&& weightStr != null && !"".equals(weightStr) && sexStr !=null && !"".equals(sexStr) && ageStr != null && !"".equals(ageStr) ){
        double heightValue = Double.parseDouble(heightStr);
        double weightValue = Double.parseDouble(weightStr);
        double ageValue = Double.parseDouble(ageStr);

        if (sexStr .equals("M"))
        {
            double bmr = Math.round((((weightValue / 2.2046) * 10) + (6.25 * (heightValue * 30.48)) - (5 * ageValue) + 5) * 100);
            double bmrr = bmr / 100;
            result1.setText("YOUR BMR IS: " + bmrr);
            if (actItemStr .equals("Light")) {
                double dtee = Math.round((bmrr * 1.53) * 100);
                result2.setText("YOUR DTEE IS: " + dtee / 100);
            }
            else if (actItemStr .equals("Moderate")) {
                double dtee = Math.round((bmrr * 1.76) * 100);
                result2.setText("YOUR DTEE IS: " + dtee / 100);

Итак, я вложил оператор if, который говорит, что если пользователь выбрал «Light» из выпадающего меню, чем выполнить расчет, иначе, если пользователь выбрал «Moderate» из выпадающего спискавниз, чем выполнить другой расчет. Когда я запускаю этот код, приложение запускается, и у меня выпадает счетчик, а при выборе приложение просто обновляется. Если я вычеркну спиннер из уравнения, расчет сработает. Есть идеи, что я могу делать не так?

...