问题:我遵循了有关如何在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语言。