【问题标题】:Spinner OnItemSelectedListener微调器 OnItemSelectedListener
【发布时间】:2012-01-11 21:26:18
【问题描述】:

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

有什么帮助吗?

编辑:添加代码

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 ();
    }

【问题讨论】:

    标签: android xamarin.android


    【解决方案1】:

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

    编辑:

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

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

    【讨论】:

    • 谢谢。这似乎有效,除了我不需要它来触发事件 OnCreate。请参阅我正在根据 SQL 查询动态生成微调器,并将微调器的值设置为在 OnCreate 期间存储在数据库中的先前选择的值。如果用户选择不同的东西,我需要该事件仅在此之后触发。
    • 当事件触发时,您可以检查新值与原始值是否已更改。
    • 我想我的问题是如何做到这一点。值更改后,如何将其与不再存在的值进行比较?我添加了我的代码,让您更好地了解我在做什么
    • 一如既往的格雷格,非常有帮助。谢谢!
    【解决方案2】:

    你可以像这样使用标签

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

    当您基于 SQL 数据创建/更新微调器适配器时

    userClick = false;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 2023-03-23
      • 1970-01-01
      相关资源
      最近更新 更多