2013-12-19 2 views
0

в моем приложении У меня есть счетчик, который начинается с 15, и у меня есть кнопка с анимацией и звуком, проблема в том, что я хочу отключить звук и анимацию кнопки и изменить фон для воспроизведения другого звука при щелчке, когда счетчик достигнет 0Отключить счетчик android

это код, который я пытался заблокировать счетчик и звук, но он не работает, я использую его неправильно, у вас есть идея?

код:

MediaPlayer mediaPlayer; 
    int contatore; 
    TextView Display; 
    Button b1; 


    private StartAppAd startAppAd = new StartAppAd(this); 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.b1); 

     contatore = 15; 
     b1 = (Button)findViewById(R.id.b1); 
     Display = (TextView)findViewById(R.id.contatore); 



     final Animation animRotate = AnimationUtils.loadAnimation(this, R.anim.pistola); 


     b1.setOnClickListener(new Button.OnClickListener() { 



      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
         contatore --; 
         Display.setText(""+contatore); 

        for (int contatore = 0; contatore!= 0;){ 
          contatore = (Integer) null; 
          mediaPlayer = null; 
         } 



       arg0.startAnimation(animRotate); 
       final Button button1 = (Button)findViewById(R.id.b1); 

       button1.setBackgroundResource(R.drawable.deserteagle_1); 
       Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        public void run() { 
         button1.setBackgroundResource(R.drawable.deserteagle_0); 
        } 
       }, 100); 


       mediaPlayer = MediaPlayer.create(getBaseContext(),R.raw.b1); 
       mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
         @Override 
         public void onPrepared(MediaPlayer mediaPlayer) { 
          // TODO Auto-generated method stub 

          mediaPlayer.start(); 

          mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 
           public void onCompletion(MediaPlayer mediaPlayer) { 
            mediaPlayer.release(); 

           }; 
          }); 
           } 
          }); 
      } 

     }); 

Заранее спасибо

+1

Объясните еще раз, что «не работает ». Вы имеете в виду, что счетчик никогда не меняется, или источник звука никогда не изменяется? –

+0

счетчик не останавливается, и приложение работает нормально –

ответ

0

Я решил проблему счетчика таким образом, теперь остается только для меня, чтобы играть в другой звук вместо этого и остановить анимацию и изменить цвет фона кнопки

private int contatore = 15; 
      private Object mediaPlayer; 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
         contatore --; 
         Display.setText(""+contatore); 

         if(this.contatore <= 0) 
       { 
         this.contatore=1; 
          this.mediaPlayer = null; 
         } 
+0

Может быть, лучше, если бы вы могли обновить код в своем исходном сообщении ... И я просто не совсем уверен, что именно вы пытаетесь сделать здесь. Вы запускаете счетчик в 15, затем, когда он равен 0, вы устанавливаете его на 1? –

0

Ok ... глядя на код, попробуйте эти изменения.

Это:

final Button button1 = (Button)findViewById(R.id.b1); 
button1.setBackgroundResource(R.drawable.deserteagle_1); 

Для этого:

runOnUiThread(new Runnable() { 
    // you already have `b1` that points to `R.id.b1`, so use that 
    // instead of using `findViewById` again 
    b1.setBackgroundResource(...); 
}); 

Я не уверен, что эта часть должна делать:

  for (int contatore = 0; contatore!= 0;){ 
        contatore = (Integer) null; 
        mediaPlayer = null; 
       } 

Также убедитесь, что обернуть Display.setText внутри runOnUiThread

+0

не хочет останавливать счетчик до –

Смежные вопросы