2011-09-07 52 views
0

我使用.Net和MonoDroid的开发Android应用程序,但我似乎碰了壁,当谈到在运行时微调灌装,因为我没有访问[Spin​​ner Object] .SetAdapter(...)方法。我一直在这两个净MonoDroid的微调自动填充

developer.android.com/resources/tutorials/views/hello-spinner.html 和 android.xamarin.com/Tutorials 以及 stackoverflow.com/questions/3958866/how -to-变化的 - 内容 - 的微调上运行时功能于Android的

,一切都依赖于这种方法。这是未注册版本的限制吗?因为他们在这里没有提及功能限制android.xamarin.com/DownloadTrial

任何帮助将不胜感激。

回答

3

在Mono for Android中,很多情况下Java将getXXXX/setXXXX方法转换为名为XXXX的属性,以便更友善地使用.NET。在这种情况下,Spinner.setAdapter()在Java中变得Spinner.Adapter单中为Android:

Spinner spinner = FindViewById<Spinner> (Resource.Id.spinner); 
spinner.Adapter = new ArrayAdapter... 

Xamarin还具有可here一个微调的教程,可以帮助你走了。

+0

谢谢 - 反正是有允许用户不断添加项目并刷新微调控件? –

+0

对不起 - 我是一个白痴 - 需要设置适配器!谢谢! –

+0

您可以调用适配器上的NotifyDataSetChanged(),告诉它底层数据已被修改。 –

0

解决它 - 有一个适配器属性可用于访问适配器。

而且事实证明,你必须检查是否适配器是空第一 - 你可以不读空对象:)

如果(_itemlist.Adapter == NULL){ 适配器 =新ArrayAdapter(这一点,Android的.Resource.Layout.SimpleSpinnerItem,items); }

唯一的问题是,它不会自动刷新和无效(...)方法不会导致它与新项目重绘...