เหตุใดฉันจึงได้รับข้อยกเว้นการอ้างอิง Null ซึ่งกำหนดวิธีการมอบสิทธิ์ให้กับตัวจัดการเหตุการณ์ Button.OnClick [ทำซ้ำ]

คำถามนี้แตกต่างจากคำถามที่ทำเครื่องหมายว่าซ้ำกัน เนื่องจากไม่ได้ลงรายละเอียดเกี่ยวกับตัวอย่างของผู้ได้รับมอบหมายโดยเฉพาะ

ฉันต้องการเพิ่มวิธีการมอบสิทธิ์ให้กับปุ่มของฉันเมื่อคลิกเหตุการณ์อย่างเรียบร้อย ทำได้โดยใช้ C# ใน Xamarin เมื่อเรียกใช้แอปในโปรแกรมจำลองของฉัน ฉันได้รับข้อยกเว้นที่ไม่สามารถจัดการได้ด้านล่าง

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");
        }
    }
}

ขอบคุณ


person Jim    schedule 10.08.2017    source แหล่งที่มา
comment
คุณได้รับโค้ด NullReferenceException ในบรรทัดใด   -  person Dennis Larisch    schedule 10.08.2017
comment
ปุ่มสตาร์ทคลิก   -  person Jim    schedule 10.08.2017
comment
หากคุณทำการดีบั๊ก จะมีการกรอก startButton และ stopButton อย่างถูกต้องหรือไม่ ดูเหมือนว่าหนึ่งในนั้นจะเป็นโมฆะ หรือคุณได้รับข้อผิดพลาดนี้ในบรรทัดใด   -  person M. Pipal    schedule 10.08.2017
comment
จากนั้นฟังก์ชัน FindViewById<Button>(Resource.Id.startAudio); จะส่งคืนค่าว่าง   -  person Dennis Larisch    schedule 10.08.2017
comment
โปรดทำ SetContentView (Resource.Layout.Main); คำสั่งก่อนปุ่มค้นหา   -  person Ziyad Godil    schedule 10.08.2017
comment
ขอบคุณทุกคน. คุณช่วยฉันหาว่าจริงๆ แล้วไม่ใช่ผู้รับมอบสิทธิ์ที่ไม่ได้กำหนดไว้ แต่ที่จริงแล้วปุ่มนั้นเป็นโมฆะ   -  person Jim    schedule 10.08.2017