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

コードにいくつか問題があります。最初に、とという型の 2stringつの変数を宣言します。後者は、スイッチの内部スコープで再度宣言されます。したがって、そのスコープと参照の外に出ると、ボタンではなく変数が取得されますが、それが意図されているかどうかはわかりません。showButtonpositionpositionstring

showButton次に、変数 to を と の組み合わせとしてResource.Id.使用しようとしていると思いますがshowButton、これは機能しません! axmlファイルで定義されたIDから、ビルドごとに生成されるファイルでResource.Id.<someId>すべて定義されています。Resource.Designer.csそのように、文字列名から変数を参照することはできません。あなたができることは、showButton変数からボタンの正しいIDを返すメソッドを持つことです。

また、すべてのボタンをMain.axmlファイルに既に追加しているようです。私がやりたいことは、新しいボタンを膨らませてから、必要に応じてMain.axmlファイルに追加し、position変数に従って配置することです。したがって、ここでは、ボタン定義を使用して新しい axml ファイルを作成する必要があります。コードでそれを膨らませてから、ビューに追加します。

于 2012-11-05T11:31:40.393 に答える