Проверка строки с помощью синтаксического анализа

#android #xamarin

#Android #xamarin

Вопрос:

Я пытаюсь проверить 3 значения, одно из которых вводится вручную, а два других выбираются с помощью средства выбора, в итоге оно не проверяется и появляется ошибка, мне нужно, чтобы, когда пользователь не ввел какое-либо значение, появлялось предупреждение о том, что все поля должны быть заполнены, ноЯ не вижу, как это реализовать.

 void CalculateBMI(object sender, EventArgs e)
        {
      
            double weight = Double.Parse(peso.Text);
            double feets = Double.Parse(Pies.SelectedItem.ToString());
            double inches = Double.Parse(Pulgadas.SelectedItem.ToString());

            double totalInches = (feets * 12)   inches;
            double bmi = (weight * 703) / (totalInches * totalInches);
            lblBMIValue.Text = String.Format("Your BMI is {0:0.00}", bmi);
            string bmiLevel = "";
            Color color = Color.Transparent;
            lblBMI.TextColor = Color.White;

            if ((weight <= 0) || (inches <= 0) || (feets <= 0))
            {
                DisplayAlert("Attention", "Please complete all the data.", "Ok");
                return;
            }
            else if (bmi < 18.5)
            {
                bmiLevel = "Underweight"; color = Color.FromHex("FECD57");
            }
            else if (bmi < 25)
            {
                bmiLevel = "Normal"; color = Color.FromHex("1287CE");
            }
            else if (bmi < 30)
            {
                bmiLevel = "Overweight"; color = Color.FromHex("FECD57");
            }
            else
            {
                bmiLevel = "Obese"; color = Color.FromHex("EC5564");
            }
            lblBMI.Text = bmiLevel;
            bmiStack.BackgroundColor = color;
        }
 

Ответ №1:

Если пользователь ничего не вводит в запись, Text запись of Empty("") ;

Если пользователь ничего не выбирает в средстве выбора, значение SelectedItem средства выбора равно нулю;

И в вашей CalculateBMI функции вы должны сначала проверить 3 значения, а затем рассчитать ИМТ:

 void CalculateBMI(object sender, EventArgs e)
{

    if ((string.IsNullOrEmpty(peso.Text)) || (Pies.SelectedItem == null) || (Pulgadas.SelectedItem == null))
    {
        DisplayAlert("Attention", "Please complete all the data.", "Ok");
        return;
    }

    double weight = Double.Parse(peso.Text);
    double feets = Double.Parse(Pies.SelectedItem.ToString());
    double inches = Double.Parse(Pulgadas.SelectedItem.ToString());

    double totalInches = (feets * 12)   inches;
    double bmi = (weight * 703) / (totalInches * totalInches);
    lblBMIValue.Text = String.Format("Your BMI is {0:0.00}", bmi);
    string bmiLevel = "";
    Color color = Color.Transparent;
    lblBMI.TextColor = Color.White;

    if (bmi < 18.5)
    {
        bmiLevel = "Underweight"; color = Color.FromHex("FECD57");
    }
    else if (bmi < 25)
    {
        bmiLevel = "Normal"; color = Color.FromHex("1287CE");
    }
    else if (bmi < 30)
    {
        bmiLevel = "Overweight"; color = Color.FromHex("FECD57");
    }
    else
    {
        bmiLevel = "Obese"; color = Color.FromHex("EC5564");
    }
    lblBMI.Text = bmiLevel;
}
 

Ответ №2:

 bool error = false;

if (string.IsNullOrEmpty(peso.Text) ||
    Pies.SelectedItem == null ||
    Pulgadas.SelectedItem == null)
{
   error = true;
   // display error message
}