2017-08-17 7 views
0

まず第一に私の英語は納得いかないと思います。 このアプリではカウンタがあり、たとえば30秒に達すると音がする必要があります。 ノート:私はすべてのルールを破ったか、私はより良い方法を求めていることができれば、カウンタとしてグローバル整数変数を定義し、Chronometer年代にそれを数えるカウンタが特定の時間に達すると音が鳴りますか? Android


import android.os.SystemClock; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.Chronometer; 

public class MainActivity extends AppCompatActivity { 

    private Button mStartButton; 
    private Button mPauseButton; 
    private Button mResetButton; 
    private Chronometer mChronometer; 

    private long lastPause; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mStartButton = (Button) findViewById(R.id.start_button); 
     mPauseButton = (Button) findViewById(R.id.pause_button); 
     mResetButton = (Button) findViewById(R.id.reset_button); 
     mChronometer = (Chronometer) findViewById(R.id.chronometer); 

     mStartButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (lastPause != 0){ 
        mChronometer.setBase(mChronometer.getBase() + SystemClock.elapsedRealtime() - lastPause); 
       } 
       else{ 
        mChronometer.setBase(SystemClock.elapsedRealtime()); 
       } 

       mChronometer.start(); 
       mStartButton.setEnabled(false); 
       mPauseButton.setEnabled(true); 
      } 
     }); 

     mPauseButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       lastPause = SystemClock.elapsedRealtime(); 
       mChronometer.stop(); 
       mPauseButton.setEnabled(false); 
       mStartButton.setEnabled(true); 
      } 
     }); 

     mResetButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       mChronometer.stop(); 
       mChronometer.setBase(SystemClock.elapsedRealtime()); 
       lastPause = 0; 
       mStartButton.setEnabled(true); 
       mPauseButton.setEnabled(false); 
      } 
     }); 
    } 
} 
+0

を私はあなたがクロノメーターではなく... –

答えて

0

私が知ってください聞かせて、これはここで私の最初の質問ですそれはたとえば30のために達するときOnChronometerTickListener、その後、サウンドを再生し、あなたのカウンタをリセット:

int c = -1; // define global 

chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { 
    @Override 
    public void onChronometerTick(Chronometer chronometer) { 
     c++; 
     if(c == 30) { 
      c = 0; 
      MediaPlayer mp = MediaPlayer.create(getApplicationContext(), R.raw.ding); 
      mp.start(); 
     } 
    } 
}); 
+0

おかげで、役立つハンドラを必要といけないと思います! – MMikes

関連する問題