使用变量创建多个按钮

时间:2012-11-05 10:41:28

标签: c# xamarin.android

我正在尝试构建一个for函数来创建具有随机案例的多个按钮。

我不知道如何使用我的变量创建这些按钮?

以下是我的代码部分:

位置字符串用于确定我正在创建的按钮。 showButton string用于确定我正在使用的按钮ID。

string showButton, position;                
for(int i = 1; i<=12; i++)
        {

            showButton = "imagebutton" + i;
            position = "position" + i;


        Random random = new Random();
        int randomNum = random.Next(1,4);

        switch (randomNum)
        {
            case 1:

                ImageButton position = FindViewById<ImageButton>(Resource.Id.showButton);
                position1.SetImageResource(Resource.Drawable.buttonGreen);
                btnPosition.Click += (o, e) =>
                    {
                        Toast.MakeText(this, "Você venceu", ToastLength.Short).Show();
                    };
                break;
            case 2:
                SetContentView(Resource.Layout.Main);
                ImageButton position = FindViewById<ImageButton>(Resource.Id.showButton);
                position.SetImageResource(Resource.Drawable.buttonYellow);
                position.Click += (o, e) =>
                    {
                        Toast.MakeText(this, "Você Venceu", ToastLength.Short).Show();
                    };
                break;
            case 3:
                SetContentView(Resource.Layout.Main);
                ImageButton position = FindViewById<ImageButton>(Resource.Id.showButton);
                position.SetImageResource(Resource.Drawable.buttonRed);
                position.Click += (o, e) =>
                    {
                        Toast.MakeText(this, "Você Perdeu", ToastLength.Short).Show();
                    };
                break;
        }

1 个答案:

答案 0 :(得分:0)

我发现代码存在一些问题。首先,您声明两个string类型的变量,即showButtonposition。然后在交换机的内部范围内再次声明后者。因此,当您离开该范围并引用position时,您将获得string变量而不是按钮,我不确定是否有意。

接下来我认为您正在尝试将showButton变量用作Resource.Id.showButton的组合,这不起作用! Resource.Id.<someId>都在Resource.Designer.cs文件中定义,该文件是在每个构建中从您在axml文件中定义的ID中生成的。不能像这样引用字符串名称中的变量。你可以做的是让一个方法从showButton变量返回按钮的正确ID。

此外,您似乎已经将所有按钮添加到Main.axml文件中,我认为您想要做的是给新按钮充气,然后在需要时将它们添加到Main.axml文件中,根据您的position变量定位。 所以在这里你应该用你的按钮定义创建一个新的axml文件。在代码中对其进行充气,然后将其添加到视图中。