0

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

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

这是我的代码的一部分:

位置字符串用于确定我正在创建哪个按钮。showButton 字符串用于确定我正在使用的按钮 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;
        }
4

1 回答 1

0

我看到代码存在一些问题。首先,您声明两个类型的变量,stringshowButtonposition。然后后者在开关的内部范围内再次声明。因此,当您超出该范围并引用时,position您将获得string变量而不是按钮,我不确定这是否是有意的。

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

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

于 2012-11-05T11:31:40.393 回答