Xamarin功能错误

时间:2015-10-03 17:38:52

标签: android xamarin compiler-errors android-emulator emulation

启动模拟器时出现此错误:

  

发生未处理的异常

我尝试使用委托以各种方式调用函数ciao。有人可以解释为什么这是错的吗?

using System;

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

namespace Prova
{

    [Activity(Label = "Prova", MainLauncher = true, Icon = "@drawable/icon")]

    public class MainActivity : Activity
    {

        Button saved;
        protected override void OnCreate(Bundle bundle)
        {
            saved = FindViewById<Button>(Resource.Id.Saved);
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            saved.Click += (object sender, EventArgs e) => {
                ciao(sender, e);
            };
        }

        private void ciao (object sender, EventArgs e)
        {

        }
    }
}

1 个答案:

答案 0 :(得分:0)

很难确定问题是什么,因为你没有包含完整的异常和堆栈跟踪,但是我在这里看到的一件事会导致代码失败,那就是你试图拉出按钮在实际设置视图之前的UI。如果找不到视图,FindViewById()将返回null,因此您在尝试附加点击处理程序时可能会遇到NullReferenceException

您应该将OnCreate方法更新为以下内容:

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

    SetContentView(Resource.Layout.Main);

    saved = FindViewById<Button>(Resource.Id.Saved);
    saved.Click += ciao;
}