2016-07-19 3 views
-3

내 코드에서 사용자는 빠른 수학 질문에 답하고 버튼을 눌러 대답해야하지만 다음 질문의 경우 첫 번째 질문에만 두 번째 대답을 확인하지 않습니다. 어떻게하면 다음 답을 찾고 이전 답을 찾지 못하게 할 수 있습니까?Android - 버튼을 누른 후 다른 기능의 버튼을 만들려면 어떻게해야하나요?

primaryText.setText (Questions [0]); 첫 번째 질문이 완료된 후, 그 두 번째 질문을 표시 할 있도록

enter.setOnClickListener(

      new Button.OnClickListener() { 

       public void onClick(View v) 

       { 
        if(numberVal.getText().toString().equals("14")) { 

         primaryText.setText(Questions[1]); 

        } 

        if(numberVal.getText().toString().equals("5")) { 

         primaryText.setText(Questions[2]); 

        } 

       } 
      } 
    ); 
+1

별도의 방법으로 논리를 이동하는 방법에 대한 질문 객체를 전달한다. 이렇게하면 문제없이 임의의 수만큼 질문의 크기를 조정할 수 있습니다. 그것의 외양에서, 당신의 코드는 약간의 리팩터링을 사용하여 좀 더 객체 지향적이 될 수 있습니다. –

답변

-1
boolean questionComplete = false; 
enter.setOnClickListener(

     new Button.OnClickListener() { 

      public void onClick(View v) 

      { 
       if(!(questionComplete)){ 
       if(numberVal.getText().toString().equals("14")) { 
        questionComplete = true; 
        primaryText.setText(Questions[1]); 

       } 
       } 
       else { 
       if(numberVal.getText().toString().equals("5")) { 

        primaryText.setText(Questions[2]); 

       } 
       } 
      } 
     } 
); 

이 그것을 만들 것입니다. 그것은 단지

+1

이것은 하나의 질문에 대한 케이스를 해결하지만, 여전히 확장 성이없고 꽤 나쁜 습관 인 것 같습니다. –

0

대신

OnClickListener 

의 시도하지만 두 가지 질문에 대한 작동합니다 :

MyBtn1.setOnTouchListener(new View.OnTouchListener(){ 
      @Override 
      public boolean onTouch(View v, MotionEvent event){ 
       if(event.getAction() == MotionEvent.ACTION_UP){ 
        //do stuff 
       } 
       else if(event.getAction() == MotionEvent.ACTION_DOWN){ 
        //do stuff 
       } 
       else if(event.getAction() == MotionEvent.ACTION_CANCEL){ 
        //do stuff 
       } 
      return true; 
      } 
     }); 
관련 문제