2013-11-25 3 views
0

학교 프로젝트 용 게임을 만들고 ImageButtons 배열을 2 차원으로 가지고 있는데, 100 번하지 않고 클릭 한 버튼의 배열 인덱스를 얻을 수 있는지 알고 싶습니다. 사례 또는 루프에서 100 번 실행 (10x10 보드)버튼 클릭 후 인덱스 값 검색

+0

청취중인 경우 이벤트 원본은 클릭 한 단추에 대한 참조입니다. 버튼을 생성하고 배열에 추가 할 때 버튼의 x 및 y 속성을 클라이언트에 추가합니다. 또는 버튼 클래스를 확장하고 클래스에 x & y를 저장하십시오. 이벤트에서 소스를 클래스로 캐스트하고 메소드를 호출하십시오. – NormR

답변

1

한 가지 방법은 각 ImageButton에 배열 색인을 붙이는 것입니다. 예를 들어, 루프를 사용하여 코드에서이 단추를 만드는 경우 루프 변수를 사용하여 이동하면서 태그를 설정할 수 있습니다. 예를 들면 : 당신하여 ImageButton의 경우 clickHandler에서 다음

android:tag="1|1" 

(난 당신이 동일한 하나를 첨부합니다 가정 : 당신의 ImageButtons가 XML에 미리 정의되어있는 경우

imgButton1.setTag("1|1"); 
imgButton2.setTag("1|2"); 
... 
imgButton10.setTag("1|10"); 
imgButton11.setTag("2|1"); 
etc 

, 당신과 같은 작업을 수행 할 수 있습니다 모든 버튼) :

String tag = (String) view.getTag(); 

두 개의 인덱스를 부분 문자열로 분리하십시오.