将Java.Lang.Object转换为.net类型

Ale*_*oto 1 casting xamarin.android

我正在尝试将一个spinner.SelectedItem转换为monodroid中的字符串.由于SelectedItem是一个Java.Lang.Object,我需要知道如何将Java.Lang.Object转换为本机.net类型.谢谢,Alex

Gre*_*les 5

你没有提供任何关于你绑定到微调器的上下文的上下文,但我假设它只是一个字符串列表?如果是这样的话,一种可能性就是做

spinner.SelectedItem.ToString()
Run Code Online (Sandbox Code Playgroud)

但是,如果底层对象不是字符串,那将不会非常有用.您还有其他一些选择.您可以使用spinner.SelectedItemPosition从spinner适配器的源中获取该项.就像是:

var source = new List<string> { "a", "b", "c" };
spinner.Adapter = new ArrayAdapter<string>(this, Resource.Layout.Item, Resource.Id.Name, source);
var selectedString = source[spinner.SelectedItemPosition];
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

var selectedString = spinner.GetItemAtPosition[spinner.SelectedItemPosition].ToString();
Run Code Online (Sandbox Code Playgroud)

这一切都取决于你想要做什么以及什么时候做.Xamarin 在这里有一个教程,介绍了使用微调器的基础知识.