Spinner OnItemSelectedListener

时间:2012-01-11 21:26:18

标签: android xamarin.android

我找不到如何在单声道中执行此操作的示例。

任何帮助?

编辑:添加了代码

foreach (equip item in list)
   {
        tr = new TableRow(this);

        sp = new Spinner(this);
        sp.LayoutParameters = lp2;
        sp.Adapter = adapter;                                  
        sp.ItemSelected += new EventHandler<ItemEventArgs>(spinner_ItemSelected());
        sp.SetSelection(Convert.ToInt32(item.status));
        tr.AddView(sp);
   }

private void spinner_ItemSelected(object sender, ItemEventArgs e)
    {
        Spinner spinner = (Spinner)sender;

        string toast = string.Format ("You selected {0}", spinner.GetItemAtPosition (e.Position));
        Toast.MakeText (this, toast, ToastLength.Long).Show ();
    }

2 个答案:

答案 0 :(得分:10)

在Mono for Android中,许多监听器接口已被转换为C#事件,包括这个。在这种情况下,您可以挂钩ItemSelected事件,而不必创建一个监听器。 Xamarin有一个使用微调器here的完整示例。

修改

根据您在微调器值实际更改时区分的请求,您可以执行以下操作:

int initialSpinnerPosition = spinner.SelectedItemPosition;
spinner.ItemSelected += (sender, args) =>
                        {
                            if (args.Position != initialSpinnerPosition)
                            {
                                // do stuff
                            }
                        };

答案 1 :(得分:2)

你可以使用像

这样的标签
bool userClick = false;

spinner.ItemSelected += (sender, e) => {
            if(userClick) {
                --- do stuff
            }
            userClick = true;
        };

根据SQL数据

创建/更新微调适配器时
userClick = false;