Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Button 带有自定义按钮xamarin的NullReferenceException_Button_Xamarin_Nullreferenceexception - Fatal编程技术网

Button 带有自定义按钮xamarin的NullReferenceException

Button 带有自定义按钮xamarin的NullReferenceException,button,xamarin,nullreferenceexception,Button,Xamarin,Nullreferenceexception,所以我是xamarin/c#的新手,所以这可能是一个简单的问题! 我正在尝试制作一个在网球比赛中保持分数的应用程序。但我一直在 ButtonRood中出现NullReferenceException错误。在我模拟应用程序并启动调试器后,单击+=委托{}函数。在emulator中,只显示标题栏,因此SetContentView无法正常工作,但我认为这是由于NullReferenceException造成的 protected override void OnCreate(Bundle bu

所以我是xamarin/c#的新手,所以这可能是一个简单的问题! 我正在尝试制作一个在网球比赛中保持分数的应用程序。但我一直在 ButtonRood中出现NullReferenceException错误。在我模拟应用程序并启动调试器后,单击+=委托{}函数。在emulator中,只显示标题栏,因此SetContentView无法正常工作,但我认为这是由于NullReferenceException造成的

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

        // Set our view from the "main" layout resource
        SetContentView (Resource.Layout.Main);

        int n_clicked_rood = 0;
        int n_clicked_blauw = 0;
        int game_rood = 0;
        int game_blauw = 0;
        bool Rood_Deuce = false;
        bool Blauw_Deuce = false;

        Button ButtonRood = FindViewById<Button>(Resource.Id.ButtonRood);
        Button ButtonBlauw = FindViewById<Button>(Resource.Id.ButtonBlauw);
        ProgressBar TijdBar = FindViewById<ProgressBar>(Resource.Id.TijdBar);
        EditText Rood1 = FindViewById<EditText>(Resource.Id.Rood1);
        EditText Rood2 = FindViewById<EditText>(Resource.Id.Rood2);
        EditText Rood3 = FindViewById<EditText>(Resource.Id.Rood3);
        EditText Rood4 = FindViewById<EditText>(Resource.Id.Rood4);
        EditText Blauw1 = FindViewById<EditText>(Resource.Id.Blauw1);
        EditText Blauw2 = FindViewById<EditText>(Resource.Id.Blauw2);
        EditText Blauw3 = FindViewById<EditText>(Resource.Id.Blauw3);
        EditText Blauw4 = FindViewById<EditText>(Resource.Id.Blauw4);
        EditText TextRood = FindViewById<EditText>(Resource.Id.TextRood);
        EditText TextBlauw = FindViewById<EditText>(Resource.Id.TextBlauw);


        ButtonRood.Click += delegate
        {
            //So is deuce do something completely different, probably -1 blauw +1 rood instead of +1 all the time
            // 
            if ((Rood_Deuce == true) && (Blauw_Deuce == true)) {
                n_clicked_rood += 1; n_clicked_blauw -= 1;
                if (n_clicked_rood > n_clicked_blauw) { Rood1.Text = "AD"; Blauw1.Text = "0"; }
                if (n_clicked_rood == n_clicked_blauw) { Rood1.Text = "40"; Blauw1.Text = "40"; }
            }

            else {
                n_clicked_rood += 1;
                if (n_clicked_rood == 1) { Rood1.Text = "15"; }
                if (n_clicked_rood == 2) { Rood1.Text = "30"; }
                if (n_clicked_rood == 3) { Rood1.Text = "40"; Rood_Deuce = true; }
                if (n_clicked_rood == 4) {
                    Rood1.Text = "0"; Blauw1.Text = "0";
                    game_rood += 1; Rood2.Text = Convert.ToString(game_rood);
                    n_clicked_blauw = 0; n_clicked_rood = 0;}
            }

        };

        ButtonBlauw.Click += delegate
        {

            if ((Rood_Deuce == true) && (Blauw_Deuce == true))
            {
                n_clicked_rood -= 1; n_clicked_blauw += 1;
                if (n_clicked_rood > n_clicked_blauw) { Rood1.Text = "AD"; Blauw1.Text = "0"; }
                if (n_clicked_rood == n_clicked_blauw) { Rood1.Text = "40"; Blauw1.Text = "40"; }
            }
            else
            {
                n_clicked_blauw += 1;
                if (n_clicked_blauw == 1) { Blauw1.Text = "15"; }
                if (n_clicked_blauw == 2) { Blauw1.Text = "30"; }
                if (n_clicked_blauw == 3) { Blauw1.Text = "40"; Blauw_Deuce = true; }
                if (n_clicked_blauw == 4)
                {
                    Blauw1.Text = "0"; Rood1.Text = "0";
                    n_clicked_blauw = 0; n_clicked_rood = 0;
                    game_blauw += 1; Blauw2.Text = Convert.ToString(game_blauw);
                }
            }

        };

    }
}
protectedoverride void OnCreate(捆绑包)
{
base.OnCreate(bundle);
//从“主”布局资源设置视图
SetContentView(Resource.Layout.Main);
int n_单击_rood=0;
int n___blauw=0;
int game_rood=0;
int game_blauw=0;
bool Rood_Deuce=false;
bool Blauw_Deuce=假;
Button ButtonRood=FindViewById(Resource.Id.ButtonRood);
Button ButtonBlauw=FindViewById(Resource.Id.ButtonBlauw);
ProgressBar TijdBar=findviewbyd(Resource.Id.TijdBar);
EditText Rood1=FindViewById(Resource.Id.Rood1);
EditText Rood2=FindViewById(Resource.Id.Rood2);
EditText Rood3=findviewbyd(Resource.Id.Rood3);
EditText Rood4=findviewbyd(Resource.Id.Rood4);
EditText Blauw1=findviewbyd(Resource.Id.Blauw1);
EditText Blauw2=findviewbyd(Resource.Id.Blauw2);
EditText Blauw3=findviewbyd(Resource.Id.Blauw3);
EditText Blauw4=findviewbyd(Resource.Id.Blauw4);
EditText TextRood=findviewbyd(Resource.Id.TextRood);
EditText TextBlauw=findviewbyd(Resource.Id.TextBlauw);
ButtonRood.单击+=委派
{
//那么,平手是不是做了一些完全不同的事情,可能一直是-1BLAUW+1ROOD而不是+1
// 
if((Rood_Deuce==true)和&(Blauw_Deuce==true)){
n_clicked_rood+=1;n_clicked_blauw-=1;
如果(n_clicked_rood>n_clicked_blauw){Rood1.Text=“AD”Blauw1.Text=“0”}
如果(n_clicked_rood==n_clicked_blauw){Rood1.Text=“40”Blauw1.Text=“40”}
}
否则{
n__rood+=1;
如果(n_clicked_rood==1){Rood1.Text=“15”;}
如果(n_clicked_rood==2){Rood1.Text=“30”}
如果(n_clicked_rood==3){Rood1.Text=“40”;rood_Deuce=true;}
如果(点击次数=4){
Rood1.Text=“0”blaw1.Text=“0”;
game\u rood+=1;Rood2.Text=Convert.ToString(game\u rood);
n_clicked_blauw=0;n_clicked_rood=0;}
}
};
按钮LAUW。单击+=委派
{
if((Rood_Deuce==true)和&(Blauw_Deuce==true))
{
n_clicked_rood-=1;n_clicked_blauw+=1;
如果(n_clicked_rood>n_clicked_blauw){Rood1.Text=“AD”Blauw1.Text=“0”}
如果(n_clicked_rood==n_clicked_blauw){Rood1.Text=“40”Blauw1.Text=“40”}
}
其他的
{
n__blauw+=1;
如果(n_clicked_blauw==1){Blauw1.Text=“15”}
如果(n_clicked_blauw==2){Blauw1.Text=“30”}
如果(n_clicked_blauw==3){Blauw1.Text=“40”;blauw_Deuce=true;}
如果(n_单击_blauw==4)
{
blaw1.Text=“0”Rood1.Text=“0”;
n_clicked_blauw=0;n_clicked_rood=0;
game_blauw+=1;Blauw2.Text=Convert.ToString(game_blauw);
}
}
};
}
}

}

如果SetContentView失败,则它找不到任何布局元素,因此按钮将为空。如果ButtonRood上出现NullReferenceException,则需要首先修复SetContentView。单击,这意味着ButtonRood为null,这意味着您的代码ButtonRood=FindViewById(Resource.Id.ButtonRood);找不到按钮。这意味着您的布局Main.axml不包含id为ButtonRood的按钮。如果应用程序正在编译,那么您一定在某个地方定义了一个名为ButtonRood的按钮,因此我想问您的第一个问题是:您是否使用了正确的布局?