Android 微调器未使用新选择的项目更新 Xamarin.Android
Android Spinner not updating with newly Selected item Xamarin.Android
我有一个包含国家列表的微调器。页面加载如下
用户 select 从下拉菜单中选择一个国家。假设我们 select 阿尔及利亚
阿尔及利亚 selected 之后下拉列表将关闭,但 selected 国家/地区仍显示为未知
接下来,当我select另一个国家时,才会显示之前的国家是阿尔及利亚。不是新 selected 的国家。
我的代码
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;
}
}
}
那么如何在下拉列表关闭时立即用 selected 项目更新微调器?
显然这个问题只发生在设备模拟器上。我在物理设备上调试的时候没有遇到。
我有一个包含国家列表的微调器。页面加载如下
用户 select 从下拉菜单中选择一个国家。假设我们 select 阿尔及利亚
阿尔及利亚 selected 之后下拉列表将关闭,但 selected 国家/地区仍显示为未知
接下来,当我select另一个国家时,才会显示之前的国家是阿尔及利亚。不是新 selected 的国家。
我的代码
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;
}
}
}
那么如何在下拉列表关闭时立即用 selected 项目更新微调器?
显然这个问题只发生在设备模拟器上。我在物理设备上调试的时候没有遇到。