2012-11-05 3 views
0

나는 무작위로 여러 개의 버튼을 만드는 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; 
     } 
+0

코드에 어떤 문제가 있습니까? –

+0

문제는 : 프로그램에서 position 및 showButton을 변수로 인식하지 못하기 때문에 값을 읽는 대신 변수 이름을 읽는 것입니다. 이 변수가 이미 사용 되었기 때문에 그는 "위치"이미지 버튼을 만들 수 없지만, 물론 변수 위치를 읽고 position1로 사용하고 싶었습니다. position12 –

답변

0

코드에 몇 가지 문제점이 있습니다. 먼저 string 유형의 두 변수, 즉 showButtonposition을 선언하십시오. 후자는 스위치의 내부 범위에서 다시 선언됩니다. 따라서 범위를 벗어나 position을 참조하면 string 변수가 표시되고 버튼이 표시되지 않습니다. 의도 한 것이 확실하지 않습니다.

다음으로 showButton 변수를 Resource.Id.showButton의 조합으로 사용하려고하면이 기능이 작동하지 않습니다. Resource.Id.<someId>은 모두 axk 파일에 정의 된 ID에서 각 빌드에서 생성되는 Resource.Designer.cs 파일에 정의됩니다. 문자열 이름에서 변수를 참조하는 것은 그렇게 할 수 없습니다. 당신이 할 수있는 일은 showButton 변수에서 올바른 id를 반환하는 메소드를 가지는 것입니다.

은 또한 이미 Main.axml 파일과 제가 생각하는 당신이 원하는 새로운 버튼을 팽창 한 다음 position 변수에 따라 위치의 Main.axml 파일을 필요할 때 추가하는 모든 버튼을 추가 한 것으로 보인다. 버튼 정의를 사용하여 새 axml 파일을 만들어야합니다. 코드에서 코드를 확장 한 다음 뷰에 추가하십시오.

+0

예, 이미 필요한 모든 버튼을 추가했습니다. 내 Main.axml 파일에. 내가하고 싶은 것은 그들 각각에 대해 3 가지 사례를 구축하는 것입니다. 나는 그것을 하나씩 할 수있다. (나는 이미 믿는다.) 그러나 내가하려는 것은 루프를 가진 그들 모두이다. 그래서 같은 코드를 만드는 대신에 다른 모든 함수를 더 간단한 방법으로 추가 할 수있다. 100 배 이상 더 복잡해지고 ... –

관련 문제