为什么我得到一个Null Reference Exception,将委托方法分配给事件处理程序Button.OnClick?

时间:2017-08-10 09:45:53

标签: c# android xamarin delegates event-handling

此问题与标记的副本不同,因为它没有详细说明这个代表的具体示例。

我想在点击事件上为我的按钮整齐地添加一个委托方法。这是在Xamarin中使用C#完成的。在我的模拟器中运行应用程序时,我收到了以下未处理的异常。

System.NullReferenceException: Object reference not set to an instance of an object.

以下是我正在使用的代码

using System;
using Android.App;
using Android.Widget;
using Android.OS;

namespace AudioTour
{
    [Activity(Label = "AudioTour", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Find Buttons
            Button startButton = FindViewById<Button>(Resource.Id.startAudio);
            Button stopButton = FindViewById<Button>(Resource.Id.stopAudio);
            // Set Screen
            SetContentView (Resource.Layout.Main);
            // Assign Delegate Methods to Buttons
            startButton.Click += StartAudio;
            stopButton.Click += StopAudio;  
        }
        // Start Audio Method
        void StartAudio(object sender, EventArgs ea)
        {
            // Do Code
            Console.WriteLine("Starting Audio");
        }
        // Stop Audio Method
        void StopAudio(object sender, EventArgs ea)
        {
            // Do Code
            Console.WriteLine("Stopping Audio");
        }
    }
}

由于

0 个答案:

没有答案