2012-11-05 90 views
0

我試圖構建一個函數來隨機創建多個按鈕。使用變量創建多個按鈕

我不知道的是如何使用我的變量來創建這些按鈕?

這裏是我的代碼的一部分:

位置字符串是確定的我創建的按鈕。 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; 
     } 
+0

你的代碼有什麼問題? – 2012-11-05 10:48:15

+0

問題是:我的程序沒有將position和showButton識別爲變量,所以不是讀取它的值,而是讀取變量的名稱。像他不能創建一個「位置」圖像按鈕,因爲這個變量已經採取,但當然,我想讓他讀取可變的位置,並使用位置1 ... position12 –

回答

0

我看到了一些代碼問題。首先聲明string類型的兩個變量,即showButtonposition。後者然後再次在交換機的內部範圍內聲明。所以當你擺脫這個範圍和參考position你會得到string變量而不是按鈕,我不知道這是否是有意的。

接下來,我認爲您正在嘗試使用showButton變量作爲Resource.Id.showButton的組合,但這不起作用! Resource.Id.<someId>都是在每個版本上生成的Resource.Designer.cs文件中定義的,它們都是從axml文件中定義的ID中定義的。從字符串名稱引用變量是不可能的。你可以做的是有一個方法,從showButton變量返回該按鈕的正確標識。

而且看來你已經添加所有的按鈕到你的Main.axml文件,我想你想要做的是吹新的按鈕,然後需要對Main.axml文件時,根據您的position變量定位添加。 所以在這裏你應該創建一個新的axml文件,並用你的按鈕定義。在代碼中對其進行膨脹,然後將其添加到視圖中。

+0

是的,我已經添加了我需要的所有按鈕在我的Main.axml文件中。我想要做的是爲它們中的每一個構建3個不同的案例。我可以一個接一個地做(並且相信我,我已經做了),但是我試圖做的是全部都有一個循環,所以我可以以更簡單的方式添加所有其他函數,而不是使用相同的代碼100倍以上,使其更加複雜... –