我正在使用.Net和Monodroid来开发Android应用程序,但是当我在运行时填充Spinner时,我似乎遇到了障碍,因为我无法访问[Spinner Object] .SetAdapter( ...) 方法。我去过两地
developer.android.com/resources/tutorials/views/hello-spinner.html 和 android.xamarin.com/Tutorials 以及 stackoverflow.com/questions/3958866/how-to-change-the-contents-of-spinner-on-run-time-in-android
并且一切都依赖于这种方法。这是未注册版本的限制吗?因为他们在这里没有说明功能限制android.xamarin.com/DownloadTrial
任何帮助将不胜感激。
答案 0 :(得分:3)
在Mono for Android中,许多Java将getXXXX / setXXXX方法转换为名为XXXX的属性,以便更友好。在这种情况下,Java中的Spinner.setAdapter()在Mono for Android中变为Spinner.Adapter:
Spinner spinner = FindViewById<Spinner> (Resource.Id.spinner);
spinner.Adapter = new ArrayAdapter...
Xamarin还有一个Spinner教程here可以帮助你开始。
答案 1 :(得分:0)
解决了问题 - 有一个适用属性的适配器可用于访问适配器。
事实证明你必须首先检查适配器是否为空 - 你无法读取空对象:)
if(_itemlist.Adapter == null) { adapter = new ArrayAdapter(this,Android.Resource.Layout.SimpleSpinnerItem,items); }
唯一的问题是它不会自动刷新,而且invalidate(...)方法不会导致它重新绘制新项...