2013-07-26 2 views
1

안녕하세요 ~ 256 개의 버튼이있는 안드로이드 앱을 만들고 있습니다. 왜냐하면 나는이 모든 것들에 대해 매우 동일한 코드를 작성하고 싶지 않기 때문에 배열을 통해 더 쉬운 솔루션을 실현할 수있을 것이라고 생각했습니다. 청취자를 설정에서 onCreate 나의 접근 방식이었다 ANDROID 많은 양의 버튼을 배열로 처리 하시겠습니까?

1 for (int i=1; i<32; i++) 
2    { 
3     button[i] = (Button)findViewById(R.id.button[i]); 
4     button[i].setOnTouchListener(this); 
5    } 

나는 단추를 [] 같은 : Button[] button=new Button [64]; 이제

, 일식 단추가 해결 될 수 없다 "라인 3 하더군요 또는 필드 아니다 "그리고 그것은 단지"button "이라는 단어에 밑줄을 긋고 있기 때문에 무시한다고 생각합니다. [i] (배열)을 인식하지 못합니다. 이 객체 (내가 잘못했다 경우에 저를 정정)하지만 같이 findViewById() 그것에서 얻을하지 않는 것으로 인식됩니다 때문에

내 코드의 나머지 부분은 ... 그 완벽에 착수 할 것으로 보인다

답장을 보내 주셔서 감사합니다, 알렉스

+1

이렇게 할 수 없습니다. 더 나은 것은 동적으로 버튼을 추가하는 것입니다. –

+0

정말요? 젠장 .. 그럼 내 코드에 모든 버튼을 추가해야한다는 건가? 차이점이 있습니까? 나는 똑같은 문제 앞에 서 있다는 것을 알기 위해 전체 코드를 다시 작성하는 것을 두려워하고있다. – user2330482

답변

0

"Horschtele"사용자는 "Horschtele"이 (가) 완벽한 방식으로 답변했지만 자신의 답변을 삭제했습니다 (이유를 모르겠 음).

호르 스텔 (Horschtele) 당신이 그것을 읽으면,이 솔루션은 완벽하다고 말하고 싶습니다!

나는 적어도 모든 테이블에 대해 이렇게해야한다고 생각한다. 그러나 이것은 무한한 시간을 절약 해 준다. 다시 한번 감사 Horschtele (당신은 독일어입니다 :)?)

Horschtele의 대답은 내 수정 된 버전이 이미 테이블에 버튼이있는 경우 :

ViewGroup container = (ViewGroup) findViewById(R.id.tableRow1); 

      for(int i=0; i<container.getChildCount();i++){ 
       System.out.println(container.getChildCount()); 
      Button button = (Button)container.getChildAt(i); 
      button.setOnTouchListener(this); 
      } 

(println 메소드에 대해 궁금해하지 않습니다을 쉽게 할 수 시스템이 귀하가 참조하는 컨테이너를 올바르게 인식하는지 확인하십시오.

button[i] = (Button)container.getChildAt(i); 
button[i].setOnTouchListener(this); 
1

당신은 할 수 없어 당신이 당신의 솔루션을 제안 무엇을 : 당신이 버튼의 배열로 내 길을했다면

는이 길을 가야하는 것입니다. 더 좋은 방법은 버튼에 코드를 동적으로 추가하는 것입니다. 예 :

View parentView = (LinearLayout) findViewById(R.id.parentView); 
// declare button array above 
for (int i=1; i<32; i++) 
{ 
    Button btn = new Button(context); 
    // EDIT: adding a background resource 
    btn.setBackgroundResource(R.layout.button_layout); 
    btn.setText("This is my text"); 
    btn.setOnTouchListener(this); 
    button[i] = btn; 
} 
+0

답장을 보내 주셔서 감사합니다.하지만 실제로 그렇게 해 봤는데 실제로 작동합니다. 무엇이 잘못 되었나요? 당신이 나를 믿지 않으면 코드를 보낼 수 있습니다. 내가 사용하는 버튼에 대한 이미지가 다르기 때문에 당신이 말한 것처럼 버튼을 추가하고 싶지 않습니다. XML을 통해 더 쉽게 할 수 있다고 생각합니다. – user2330482

관련 문제