C# Android微调器未使用新选择的项目Xamarin.Android更新

C# Android微调器未使用新选择的项目Xamarin.Android更新,c#,android,xamarin,xamarin.android,android-spinner,C#,Android,Xamarin,Xamarin.android,Android Spinner,我有一个包含国家列表的微调器。页面将加载以下内容 用户从下拉菜单中选择一个国家。假设我们选择阿尔及利亚 选择阿尔及利亚后,下拉列表将关闭,但所选国家仍显示为未知 接下来,当我选择另一个国家时,只显示前一个国家,即阿尔及利亚。不是新选定的国家 我的代码 public class SpinnerActivity : Activity { private ArrayAdapter adapter; private Spinner spinner; protected o

我有一个包含国家列表的微调器。页面将加载以下内容

用户从下拉菜单中选择一个国家。假设我们选择阿尔及利亚

选择阿尔及利亚后,下拉列表将关闭,但所选国家仍显示为未知

接下来,当我选择另一个国家时,只显示前一个国家,即阿尔及利亚。不是新选定的国家

我的代码

public class SpinnerActivity : Activity
{
    private ArrayAdapter adapter;
    private Spinner spinner;
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);

        // Set our view from the "Main" layout resource
        SetContentView(Resource.Layout.SpinnerControl);

        spinner = FindViewById<Spinner>(Resource.Id.spinner);
        spinner.ItemSelected += new EventHandler<AdapterView.ItemSelectedEventArgs>(spinner_ItemSelected);

        adapter = ArrayAdapter.CreateFromResource(
            this, Resource.Array.countries_array, Android.Resource.Layout.SimpleSpinnerItem);

        adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
        adapter.NotifyDataSetChanged();
        spinner.Adapter = adapter;

        spinner.SetSelection(GameSettings.ISettings.CountrySetting);
    }


    private void spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)
    {
        Spinner spinner = (Spinner)sender;
        spinner.SetSelection(adapter.GetPosition(e.Position));
        Console.WriteLine("Setting{0}", GameSettings.ISettings.CountrySetting);
        if (e.Position != GameSettings.ISettings.CountrySetting)
        {
            GameSettings.ISettings.CountrySetting = e.Position;
            Options.countryText.ChangeText("Country: " + System.Environment.NewLine + ScoreHelper.GetCountry(GameSettings.ISettings.CountrySetting));
            ScoreBoards.Board.IsInfoUpdated = true;

        }
    }
}
公共类SpinnerActivity:活动
{
专用阵列适配器;
私人纺纱机;
创建时受保护的覆盖无效(捆绑包)
{
base.OnCreate(bundle);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.SpinnerControl);
微调器=FindViewById(Resource.Id.spinner);
spinner.ItemSelected+=新事件处理程序(spinner\u ItemSelected);
adapter=ArrayAdapter.CreateFromResource(
这是Resource.Array.countries\u Array,Android.Resource.Layout.SimpleSpinnerItem);
SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
adapter.NotifyDataSetChanged();
spinner.Adapter=适配器;
spinner.SetSelection(GameSettings.ISettings.CountrySetting);
}
私有无效微调器\u选定项(对象发送者,AdapterView.ItemSelectedEventArgs e)
{
微调器微调器=(微调器)发送器;
微调器设置选择(适配器设置位置(e位置));
WriteLine(“设置{0}”,GameSettings.ISettings.CountrySetting);
if(e.Position!=GameSettings.ISettings.CountrySetting)
{
GameSettings.ISettings.CountrySetting=e.位置;
Options.countryText.ChangeText(“国家:+System.Environment.NewLine+ScoreHelper.GetCountry(GameSettings.ISettings.CountrySetting));
ScoreBoards.Board.IsInfo更新=true;
}
}
}

那么,当下拉列表关闭时,如何立即用所选项目更新微调器呢?

显然,这个问题只发生在设备模拟器上。在物理设备上调试时,我没有遇到此问题。

显然,此问题只发生在设备模拟器上。在物理设备上调试时,我没有遇到它