Как обрабатывать необработанное исключение (nullexception) в обработчиках кнопок в xamarin. android
Я делал образец android-приложения для тестирования, и ошибка при создании обработчика кнопок выглядит следующим образом, хотя моя сборка прошла успешно.
Пожалуйста помочь
Ошибка: необработанное исключение: System.NullReferenceException: ссылка на объект не установлена на экземпляр объекта. произошло
Код выглядит следующим образом:
using Android.App; using Android.Widget; using Android.OS; namespace Android_Picture { [Activity(Label = "Android Picture", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { Button ButtonPrev; Button ButtonNext; TextView TextTitle; protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource // SetContentView (Resource.Layout.Main); ButtonPrev = FindViewById<Button>(Resource.Id.buttonPrev); ButtonNext = FindViewById<Button>(Resource.Id.buttonNext); TextTitle = FindViewById<TextView>(Resource.Id.textTitle); ButtonPrev.Click += ButtonPrev_Click; //error ButtonNext.Click += ButtonNext_Click; } private void ButtonNext_Click(object sender, System.EventArgs e) { TextTitle.Text = "Next Clicked"; //throw new System.NotImplementedException(); } private void ButtonPrev_Click(object sender, System.EventArgs e) { TextTitle.Text = "Previous Clicked"; //throw new System.NotImplementedException(); } } }
Для Меня Главным.axml выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <Button android:text="Prev" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/buttonPrev" android:layout_alignParentBottom="true" /> <Button android:text="Next" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/buttonNext" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" /> <TextView android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textTitle" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" android:layout_marginBottom="150dp" /> </RelativeLayout>
Что я уже пробовал:
Я попробовал раскомментировать строку
SetContentView (Resource.Layout.Main);
Но все равно получаю эту ошибку
Пожалуйста, помогите!!!
Richard Deeming
Сообщение об ошибке довольно очевидно: вы пытаетесь изменить переменную, которая null
.
Это означает, что FindViewById<Button>(Resource.Id.buttonPrev)
ответный звонок null
почему-то.
Чтобы избежать ошибки, проверьте, является ли кнопка null
прежде чем пытаться присоединить обработчик событий.
Чтобы решить эту проблему, отладьте свой код и выясните, почему кнопка не найдена.
Afzaal Ahmad Zeeshan
Поскольку он намеренно спрятал кнопку, его макет был закомментирован в коде, которым он поделился. Вот почему кнопка так и не была надута и не найдена; Смотрите также мой ответ.