После нажатия кнопки System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта - PullRequest
0 голосов
/ 11 июня 2018
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;

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

namespace Gamemm1
{
    [Activity(Label = "ThirdActivity")]
    public class ThirdActivity : Activity
    {
        Button RannndomButton;
        TextView Information;
        TextView ResultInMillis;
        TextView ResultInMillisCount1;
        TextView EmptySpace;


        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.ThirdLayout);
            // Create your application here
            RannndomButton.FindViewById<Button>(Resource.Id.RannndomButton);
            Information.FindViewById<TextView>(Resource.Id.Information);
            ResultInMillis.FindViewById<TextView>(Resource.Id.ResultInMillis);
            ResultInMillisCount1.FindViewById<TextView>(Resource.Id.ResultInMillisCount1);
            EmptySpace.FindViewById<TextView>(Resource.Id.emptySpace);

            this.FindViewById<Button>(Resource.Id.RannndomButton).Click += RandomButtonIsClicked;



        }

        private void RandomButtonIsClicked(object sender, EventArgs e)
        {
            Information.Visibility = ViewStates.Invisible;
            ResultInMillis.Visibility = ViewStates.Invisible;
            ResultInMillisCount1.Visibility = ViewStates.Invisible;
            EmptySpace.Visibility = ViewStates.Invisible;

        }
    }
}

Привет, ребята, когда я нажимаю на кнопку, я получаю следующее исключение: System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.здесь: RannndomButton.FindViewById (Resource.Id.RannndomButton);,Жду ваших рекомендаций.Другие 3 кнопки работают, и я написал их точно так же.Я публикую эту большую часть своего кода, потому что я не могу сделать ошибку в коде, так что, возможно, проблемы в другом месте.Я попытался создать дополнительный макет AXML, поэтому теперь id даже не сохраняется.Я не могу получить к ним доступ через FindViewById.В чем проблема?

И мой код в AXML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/Information"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:visibility="visible"
        android:text="Click on  the button to start, it will spawn at random location make sure to click it as fast as you can to win 5times." />
    <TextView
        android:id="@+id/emptySpace"
        android:layout_height="30dip"
        android:layout_width="30dip"
        android:text="          "
        android:layout_below="@id/Information"
        android:visibility="visible"
        android:layout_alignParentLeft="true" />
    <TextView
        android:id="@+id/ResultInMillis"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Reaction time in milliseconds: "
        android:layout_below="@id/emptySpace"
        android:visibility="visible"
        android:layout_alignParentLeft="true" />
    <TextView
        android:id="@+id/ResultInMillisCount1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text=" Will be displayed here"
        android:layout_below="@id/emptySpace"
        android:visibility="visible"
        android:layout_toRightOf="@id/ResultInMillis" />
    <Button
        android:id="@+id/RannndomButton"
        android:layout_height="75dip"
        android:layout_width="75dip"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="#FFFFFF" />
</RelativeLayout>

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вы на самом деле не инициализируете свои объекты просмотра.Измените OnCreate метод следующим образом:

protected override void OnCreate(Bundle savedInstanceState) 
{ 
    base.OnCreate(savedInstanceState);
    SetContentView(Resource.Layout.ThirdLayout);

    // Create your application here
    RannndomButton = this.FindViewById<Button>(Resource.Id.RannndomButton); 
    Information = this.FindViewById<TextView>(Resource.Id.Information); 
    ResultInMillis = this.FindViewById<TextView>(Resource.Id.ResultInMillis); 
    ResultInMillisCount1 = this.FindViewById<TextView>(Resource.Id.ResultInMillisCount1); 
    EmptySpace = this.FindViewById<TextView>(Resource.Id.emptySpace); 
    RannndomButton.Click += RandomButtonIsClicked; 
}
0 голосов
/ 11 июня 2018

Может быть, изменить объекты, которые вы используете для "findViewById"?

this.FindViewById<Button>(Resource.Id.RannndomButton);
this.FindViewById<TextView>(Resource.Id.Information);
this.FindViewById<TextView>(Resource.Id.ResultInMillis);
this.FindViewById<TextView>(Resource.Id.ResultInMillisCount1);
this.FindViewById<TextView>(Resource.Id.emptySpace);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...