내가

2013-08-30 5 views
0

난 당신이 내가 많은 조건에서 새로운 CountDownTimer 전화를 볼 수있는 별도의 방법내가

img9.setOnClickListener(new OnClickListener(){ 

    public void onClick(View v) { 
     img9.setBackgroundResource(myImg9); 
     String txt = PName.getText().toString(); 

     if(txt.equals("Heart")){ 
      if(myImg9 == R.drawable.heart){ 
       correct++; 
       img9.setBackgroundResource(myImg9); 
       new CountDownTimer(1000,1000) { 

        public void onTick(long millisUntilFinished) { 
         //This is when you click on each tick it came here after 1000 millisecond 
        } 

        public void onFinish() { 
         // After the time is experied so here can change image 

         img9.setBackgroundResource(android.R.drawable.btn_default);  
         img9.setEnabled(false); 

        } 
        }.start(); 
       } 
    //wrong heart 
       else if(txt.equals("Heart")){ 
        if(myImg9== R.drawable.circle || myImg9== R.drawable.square || myImg9== R.drawable.triangle){ 
         img9.setBackgroundResource(myImg9); 
         new CountDownTimer(1000,1000) { 

          public void onTick(long millisUntilFinished) { 
       //This is when you click on each tick it came here after 1000 millisecond 
          } 

          public void onFinish() { 
           // After the time is experied so here can change image 

           img9.setBackgroundResource(android.R.drawable.btn_default);  


          } 
         }.start(); 

        } 
    } 


    } 


      if(txt.equals("Circle")){ 
        if(myImg9 == R.drawable.circle){ 
         correct++; 
          img9.setBackgroundResource(myImg9); 
        new CountDownTimer(1000,1000) { 

         public void onTick(long millisUntilFinished) { 
          //This is when you click on each tick it came here after 1000 millisecond 
         } 

         public void onFinish() { 
          // After the time is experied so here can change image 

          img9.setBackgroundResource(android.R.drawable.btn_default);  
          img9.setEnabled(false); 

         } 
        }.start(); 
        } 
     //wrong circle 
        else if(txt.equals("Circle")){ 
         if(myImg9== R.drawable.heart || myImg9== R.drawable.square || myImg9== R.drawable.triangle){ 
          img9.setBackgroundResource(myImg9); 
          new CountDownTimer(1000,1000) { 

           public void onTick(long millisUntilFinished) { 
            //This is when you click on each tick it came here after 1000 millisecond 
           } 

           public void onFinish() { 
            // After the time is experied so here can change image 

            img9.setBackgroundResource(android.R.drawable.btn_default);  


           } 
          }.start(); 

         } 
        } 


      } 


      if(txt.equals("Triangle")){ 
       if(myImg9 == R.drawable.triangle){ 
        correct++; 
        img9.setBackgroundResource(myImg9); 
        new CountDownTimer(1000,1000) { 

         public void onTick(long millisUntilFinished) { 
          //This is when you click on each tick it came here after 1000 millisecond 
         } 

         public void onFinish() { 
          // After the time is experied so here can change image 

          img9.setBackgroundResource(android.R.drawable.btn_default);  
          img9.setEnabled(false); 

         } 
        }.start(); 
       } 
       //wrong circle 
       else if(txt.equals("Triangle")){ 
        if(myImg9== R.drawable.heart || myImg9== R.drawable.square || myImg9== R.drawable.circle){ 
         img9.setBackgroundResource(myImg9); 
         new CountDownTimer(1000,1000) { 

          public void onTick(long millisUntilFinished) { 
       //This is when you click on each tick it came here after 1000 millisecond 
          } 

          public void onFinish() { 
      // After the time is experied so here can change image 

           img9.setBackgroundResource(android.R.drawable.btn_default);  


          } 
         }.start(); 

        } 
       } 


      } 




      if(txt.equals("Square")){ 
       if(myImg9 == R.drawable.square){ 
        correct++; 
        img9.setBackgroundResource(myImg9); 
        new CountDownTimer(1000,1000) { 

         public void onTick(long millisUntilFinished) { 
          //This is when you click on each tick it came here after 1000 millisecond 
         } 

         public void onFinish() { 
          // After the time is experied so here can change image 

          img9.setBackgroundResource(android.R.drawable.btn_default);  
          img9.setEnabled(false); 

         } 
        }.start(); 
       } 
       //wrong circle 
       else if(txt.equals("Square")){ 
        if(myImg9== R.drawable.heart || myImg9== R.drawable.circle || myImg9== R.drawable.triangle){ 
         img9.setBackgroundResource(myImg9); 
         new CountDownTimer(1000,1000) { 

          public void onTick(long millisUntilFinished) { 
       //This is when you click on each tick it came here after 1000 millisecond 
          } 

          public void onFinish() { 
      // After the time is experied so here can change image 

           img9.setBackgroundResource(android.R.drawable.btn_default);  


          } 
         }.start(); 
        } 
       } 


      } 

    } 

    }); 

내 카운트 다운 타이머를 넣어 원하는 별도의 방식으로 카운트 다운 타이머를 넣고 싶다. 그러나 별도의 메소드에 넣고 싶기 때문에 자바 파일을 훨씬 더 읽기 쉽게 만들 수있다. 그러나 다른 버튼이 있기 때문에 void 메서드에 넣을 수 없습니다. 여기, CountDownTimer를 img9에 사용했습니다. 나는 여전히 다른 버튼, 즉 img1 ~ img8 버튼이 있습니다. 어떤 방법을 사용할 지 모르겠습니다.

내 CountDownTimer를 저장하려면 어떤 방법을 사용해야합니까? 안드로이드에 처음 익숙해졌습니다. 도와주세요. 도와 주셔서 감사합니다.

답변

0

내가 원하는 것을 이해했다면 CountDownTimer을 다른 ImageButtons에서 시작하는 동일한 방법을 호출하고 싶습니다. 이 맞다면, 바로 다음 자바에서 나는 확실히 당신의 조건을 이렇게 이해하지

public void someFunction(View v) 
{ 
    // conditions 
    new CountDownTimer(1000,1000) { 

       public void onTick(long millisUntilFinished) { 
        //This is when you click on each tick it came here after 1000 millisecond 
       } 

       public void onFinish() { 
        // After the time is experied so here can change image 

        img9.setBackgroundResource(android.R.drawable.btn_default);  
        img9.setEnabled(false); 

       } 
       }.start(); 
} 

이 기능을 작성하는 각 ImageButton

<ImageButton 
    ... 
    android:onClick="someFunctino"/> <!-- add this line to each --> 

이 같은 줄을 추가하여 XML의 onClick 설정 나는 더 이상 도울 수 없지만이 방법으로을 클릭하면이 함수가 호출됩니다. 당신이 Button이 클릭 된 것을 알 필요가 있다면 당신은 당신에게 줄 것이다 vidButton id

public void someFunction() 
{ 
    int id = v.getId(); // can compare to id like if (id == R.id.buttonID) 
    ... 
} 

그리고 어쩌면 내가 오독하고 있지만

if(txt.equals("Heart")){ 
// some code 
else if(txt.equals("Heart")){ 

을 갖고있는 것 같다

처럼 당신의 어떤 사용할 수 있습니다 같은 조건. 이것이 당신이 말하는 것에 대한 것이 아니라면, 조금 분명히하십시오.

또한 반복되는 코드가 많아서 어떤 일이 일어나고 있는지 혼란 스럽기 때문에 상황을 재고해야한다고 생각합니다. 그리고 항상 CountDownTimer을 사용하고 있기 때문에 한 번만 조건을 설정하면됩니다. void 반환 형식의 메서드를 사용할 수 없다고 말하는 이유를 이해할 수 없습니다.

+0

저는 메모리 게임을 만들고 있습니다. txt.equals ("Heart") 조건은 올바른 답을 가지고 있는지 판단하는 데 사용됩니다. – Jeongbebs

+0

처음에는'else'가 첫 번째'if'의 일부였던 것처럼 보였습니다. 이 솔루션을 사용하여 질문에 대한 답변을 했습니까, 아니면 내가 원하는 것을 놓쳤습니까? – codeMagic