2012-03-10 4 views
0

나는 화면 상에 버튼으로 가득 찬 액티비티를 가지고 있으며 각각은 [A] [B] [C] 등의 문자를 가진 텍스트를 가지고있다. 나는 사용자가 화면에서 각 터치 된 단추의 텍스트를 집계해야하며 샘플 결과는 다음과 같아야합니다. A + B + C = ABC. 일부 코드를 작성했지만 의도 한대로 작동하지 않습니다. 내 코드에서 버튼 버튼 배열을 유지하여 그 순간 어떤 버튼이 눌러 졌는지 식별 할 수 있지만이 코드는 첫 번째 터치에서만 작동하며 Action_Down은 터치하는 첫 번째 버튼을 인식합니다. 손가락 주위에 다른 버튼 텍스트를 가져올 수 없습니다. , 그래서 당신의 제안은 무엇입니까? 도와주세요 . .버튼을 슬라이드하여 집계하는 방법은 무엇입니까?

public boolean onTouch(View v, MotionEvent event) { 
     switch(event.getAction()){ 
     case MotionEvent.ACTION_DOWN: 

      for(int i=0;i<buttons.size();i++){ 
       if(buttons.elementAt(i).getId()==v.getId()){ 
        text+=buttons.elementAt(i).getText(); 
        break; 
       } 
     } 
     break; 
     case MotionEvent.ACTION_MOVE: 

      for(int i=0;i<buttons.size();i++){ 
       if(buttons.elementAt(i).getId()==v.getId()){ 
        text+=buttons.elementAt(i).getText(); 
        break; 
       } 
      } 

     case MotionEvent.ACTION_UP: 
      Toast.makeText(context,text,Toast.LENGTH_SHORT).show(); 
      text=""; 
      break; 
     } 
     return false; 
    } 

답변

0

멀티 터치라고 생각하지만 코드는 아닙니다.

멀티 터치의 경우 ACTION_POINTER_UP/DOWN을 사용해야합니다. 그러나 모든 장치가 멀티 터치를 지원하는 것은 아닙니다.

비 멀티 터치의 경우보다 복잡한 처리가 필요합니다. 버튼을 선택할 수 있습니다. 조인은 명시 적으로 수행되어야합니다.

관련 문제