【问题标题】:Crash button if statement xamarin android如果语句 xamarin android 崩溃按钮
【发布时间】:2017-05-13 18:13:26
【问题描述】:

我在使用 xamarin for android 时遇到问题。

在我的应用程序中,单击一个按钮后,我想播放两个语句。一,当EditTexts为空时,否则当editTexts不为空时。

我的应用程序总是在第一个语句而不是第二个语句时崩溃。

你可以在下面看到我的代码。

Button generate = FindViewById<Button>(Resource.Id.generate);

generate.Click += Generate_Click;

private void Generate_Click(object sender, EventArgs e)
{
EditText inputMin = FindViewById<EditText>(Resource.Id.inputMin);
EditText inputMax = FindViewById<EditText>(Resource.Id.inputMax);

minimum = int.Parse(inputMin.Text);
maximum = int.Parse(inputMax.Text);

string minString = inputMin.Text;
string maxString = inputMax.Text;

if (String.IsNullOrEmpty(minString) || String.IsNullOrEmpty(maxString))
        {
            Toast.MakeText(this, "Enter a minimum and a maximum value", ToastLength.Long).Show();
            Console.WriteLine("check input empty");
        }

else { do this }

}

我不知道它为什么会崩溃。

有什么帮助吗?

非常感谢!

问候,山姆。

【问题讨论】:

    标签: c# android .net xamarin device


    【解决方案1】:

    在大多数情况下,int.Parse 是问题所在。

    请尝试使用int.TryParse

    例如:

    Button generate = FindViewById<Button>(Resource.Id.generate);
    
    generate.Click += Generate_Click;
    
    private void Generate_Click(object sender, EventArgs e)
    {
       EditText inputMin = FindViewById<EditText>(Resource.Id.inputMin);
       EditText inputMax = FindViewById<EditText>(Resource.Id.inputMax);
    
       int minimum, maximum;
    
       if(!int.TryParse(inputMin.Text, out minimum) && int.TryParse(inputMax.Text, out maximum))
       {
          Console.WriteLine("Parsing problem!");
          // return;                                <--- If you want to stop.
       }
    
       string minString = inputMin.Text;
       string maxString = inputMax.Text;
    
       if (String.IsNullOrEmpty(minString) || String.IsNullOrEmpty(maxString))
       {
          Toast.MakeText(this, "Enter a minimum and a maximum value", 
                         ToastLength.Long).Show();
          Console.WriteLine("check input empty");
       }
       else 
       { 
          // do this 
       }
    }
    

    【讨论】:

    • 当我使用您的解决方案时,我单击生成按钮,editTexts 为空,我遇到此错误“System.FormatException:输入字符串格式不正确。”然后应用程序崩溃了。
    • 如果注释掉return语句会发生什么?异常被称为 ed 因为你的字符串是空的!?但是使用我的解决方案你不应该得到这个异常,因为 TRYParse.
    • 您是否再次从字符串中设置了最大值?也许,您可以使用代码 sn-p 更新您的问题?
    • 抱歉,我忘了再次编辑我的文本,但它工作正常。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多