无法在Android Spinner教程中隐式转换类型错误

时间:2012-06-20 19:41:25

标签: c# android xamarin.android

您好我正在尝试为Android制作Spinner教程。 http://docs.xamarin.com/android/tutorials/User_Interface/spinner 我收到错误: Cannot implicitly convert type 'System.EventHandler<Android.Widget.ItemEventArgs>' to 'System.EventHandler<Android.Widget.AdapterView.ItemSelectedEventArgs>' (CS0029) 在我的Activity1.cs的第26行。我刚刚复制了教程中的代码,所以我不确定我需要更改此行以便我可以运行它。 这是我的Activity1.cs:

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace HelloSpinner
{
[Activity (Label = "HelloSpinner", MainLauncher = true)]
public class Activity1 : Activity
{
    int count = 1;

    protected override void OnCreate (Bundle bundle)
    {
        base.OnCreate (bundle);

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

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

        spinner.ItemSelected += new EventHandler<ItemEventArgs> (spinner_ItemSelected); 
        var adapter = ArrayAdapter.CreateFromResource (
            this, Resource.Array.planets_array, Android.Resource.Layout.SimpleSpinnerItem);

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

    private void spinner_ItemSelected (object sender, ItemEventArgs e)
    {
        Spinner spinner = (Spinner)sender;

        string toast = string.Format ("The planet is {0}", spinner.GetItemAtPosition (e.Position));
        Toast.MakeText (this, toast, ToastLength.Long).Show ();
    }
}
}

1 个答案:

答案 0 :(得分:2)

最简单的方法可能只是使用事件声明的委托类型...理想情况下使用更简单的方法组转换语法:

spinner.ItemSelected += spinner_ItemSelected; 

...

private void spinner_ItemSelected(object sender, AdapterView.ItemSelectedEventArgs e)

(现在你只需要Android.Widget的使用指令。)