微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 xamarin 应用程序中没有写入任何内容时,如何填写缺失的条目?

如何解决在 xamarin 应用程序中没有写入任何内容时,如何填写缺失的条目?

我正在做导入页面,如果用户将某些条目留空并单击导入按钮,我想用缺失填充空白条目。我试过这样:

if (liveryEntry.Text == null)
            {
                liveryEntry.Text = "Missing";
            }
            if (registrationEntry.Text == null)
            {
                registrationEntry.Text = "Missing";
            }
            if (airportEntry == null)
            {
                airportEntry.Text = "Missing";
            }                
            if (commentEntry == null)
            {
                commentEntry.Text = "Missing";
            }

但有时它会起作用并用 Missing 填充它,有时它不起作用。有什么问题或有其他方法可以做到这一点? 这是方法的完整代码

private async void buttonImport_Clicked(object sender,EventArgs e)
    {
        var db = new sqliteConnection(_dbPath);
        db.CreateTable<Airplane>();
        collectionPlane.IsVisible = false;
        collectionAirline.IsVisible = false;
        collectionLivery.IsVisible = false;
        collectionRegistration.IsVisible = false;
        collectionAirport.IsVisible = false;
        try
        {
            if (liveryEntry.Text == null)
            {
                liveryEntry.Text = "Missing";
            }
            if (registrationEntry.Text == null)
            {
                registrationEntry.Text = "Missing";
            }
            if (airportEntry == null)
            {
                airportEntry.Text = "Missing";
            }                
            if (commentEntry == null)
            {
                commentEntry.Text = "Missing";
            }
            if (planeEntry.Text != null && airlineEntry.Text != null)
            {
                var url = PhotoPick();
                int i = 1;
                int same = 0;
                string fileName = registrationEntry.Text;
                for (int b = 1; b <= GetNumberPhotos(); b++)
                {
                    if (db.Table<Airplane>().FirstOrDefault(d => d.Id == b) != null)
                    {
                        var rowData = db.Table<Airplane>().FirstOrDefault(d => d.Id == b);
                        string match = rowData.Registration;
                        if (fileName == match)
                        {
                            same++;
                        }
                    }
                }
                i = 1 + same;
                fileName = registrationEntry.Text + "-" + i;
                var thumbUrl = CreateThumbnail(await url,fileName);
                var maxPK = db.Table<Airplane>().OrderByDescending(c => c.Id).FirstOrDefault();
                Airplane airplane = new Airplane()
                {
                    Id = (maxPK == null ? 1 : maxPK.Id + 1),SearchId = planeEntry.Text + airlineEntry.Text + liveryEntry.Text + registrationEntry.Text + airportEntry.Text + datePicker.Date.ToString() + commentEntry.Text,Plane = planeEntry.Text.toupper(),Airline = airlineEntry.Text,Livery = liveryEntry.Text,Registration = registrationEntry.Text.toupper(),Airport = airportEntry.Text.toupper(),Date = datePicker.Date,Comment = commentEntry.Text,Url = await url,ThumbnailUrl = thumbUrl
                };
                db.Insert(airplane);
                await displayAlert("Saved",planeEntry.Text + " of " + airlineEntry.Text + " is saved.","OK");
                planeEntry.Text = "";
                airlineEntry.Text = "";
                liveryEntry.Text = "";
                registrationEntry.Text = "";
                airportEntry.Text = "";                    
                commentEntry.Text = "";
            }
            else
                await displayAlert("Fill all needed fields","You have to fill all fields except livery and comment","OK");
        }
        catch
        {
            await displayAlert("Error","Something went wrong","Try again");
        }
    }

解决方法

这可能是@Cfun 使用 if ( string.IsNullOrEmpty(liveryEntry.Text)) 解决的某种错误或误解,并且它按预期工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。