2011-12-31 2 views
1

가능한 중복에 정수를 변환, for 루프에서 변수를 선언 :문자열 (안드로이드/자바)

:
Android findViewbyId with a variant string

나는 활동에서이 코드 유형이

ImageButton button1 = (ImageButton)findViewById(R.id.butid1); 
ImageButton button2 = (ImageButton)findViewById(R.id.butid2); 
ImageButton button3 = (ImageButton)findViewById(R.id.butid3); 

이제 for 루프 내에서 이러한 변수를 선언하고 싶습니다. 또한이 N 버튼을 사용하여 작업을 수행합니다. 예를 들면 다음과 같습니다.

for (int NUMBER = 1; NUMBER <= N; NUMBER++) { 
    ImageButton button"NUMBER" = (ImageButton)findViewById(R.id.butid"NUMBER"); 
    button"NUMBER".setEnabled(false); 
} 

N은 상황에 따라 달라집니다. 이 문제를 해결하기 위해 최선을 다할 수 있습니까? (추신 : "비슷한 제목의 질문"에서 결과를 찾을 수 없음)

+0

버튼 배열을 사용하지 않는 이유는 무엇입니까? 또는 arraylist N이 변수 인 경우 – prongs

+0

Android 용 작은 시작 프로그램을 만들었으므로 그다지 많이하지 않았습니다. 하지만 ImageButton과 같은 배열을 사용할 수 없습니다 [] button = new ImageButton [3]; 그리고 나서 button [i] = (ImageButton) findViewById (R.id.butid + Integer.toString (i));를 사용하십시오. 감사합니다 –

+0

같은 질문이 여기에 : http://stackoverflow.com/questions/6679434/android-findviewbyid-with-a-variant-string –

답변

2

루프 전에 모든 Button을 Button 배열에 넣으십시오. 따라서 원하는대로 어레이를 반복 할 수 있습니다.

ImageButton[] buttons = new ImageButton[<put here the total number of Buttons>]; 

buttons[0] = (ImageButton)findViewById(R.id.butid1); 
buttons[1] = (ImageButton)findViewById(R.id.butid2); 
... 
buttons[N-1] = (ImageButton)findViewById(R.id.butidN); 

for (int i = 0; i < N; i++) { 
    buttons[i].setEnabled(false); 
} 
+0

내 편집을 신경 쓰지 마라. 그것은 둘 다 작동합니다 ... 나는 끔찍합니다 : P – schijndelvanjos

0

사용 ImageButton[] button = new ImageButton[NUMBER] 다음 루프는해야한다 위해 :

for (int i = 0; i < NUMBER; i++) { 
    ImageButton button[i] = (ImageButton)findViewById(R.id [***]); 
    button[i].setEnabled(false); 
} 

[*] 나는 안드로이드를 모르겠지만, 내가 같이 모든 버튼을 얻을 수있는 방법이 상상 어떤 종류의 목록이나 배열 그래서 당신이 각각 ID로 그들을 액세스 할 필요가 없습니다.