Android / C#:在启动时防止微调器吐司

时间:2018-08-17 07:50:22

标签: c# android xamarin

问题:我遵循了有关如何在Android中实现微调器的不同教程,例如this。但是,当应用程序首次打开时,无需用户进行任何选择即可立即进行烤面包。

我的解决方案:我尝试创建一个布尔变量,即在启动时将其设置为“ false”。仅当布尔值设置为“ true”时,烤面包才会显示。此解决方案有效:启动时不进行烤面包,但是如果用户必须选择第一项(默认情况下选中),则不进行烤面包。用户选择其他选项,然后重新选择第一个选项后,仅显示第一项的吐司。不过,这不是主要问题。我的代码如下所示。

在我的 OnCreate 方法中,我具有以下内容:

        boolToast = false;
        Spinner spinner = FindViewById<Spinner>(Resource.Id.spinner);
        spinner.SetSelection(0, false);
        spinner.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(Spinner_ItemSelected);
        var adapter = ArrayAdapter.CreateFromResource(this, Resource.Array.array, Android.Resource.Layout.SimpleSpinnerItem);
        adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
        spinner.Adapter = adapter;

我的 spinner_ItemSelected 方法如下:

    private void Spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
    {
        Spinner spinner = (Spinner)sender;
        string toast = string.Format("Selected item is {0}", spinner.GetItemAtPosition(e.Position));

        if (boolToast == true)
        {
            Toast.MakeText(this, toast, ToastLength.Long).Show();
        }
        boolToast = true;
    }

我已经对此感到满意,但想知道是否有一种更优雅或更合适的方法来实现这一目标。我看到了其他一些相当相似的问题,但是这些问题大部分是我不熟悉的Java语言。

0 个答案:

没有答案