60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

ストップウォッチできた!!

ストップウォッチとかこんなに簡単にできちゃうんですね!!一から自分で作ろうとしたら難しいんでしょうけど、既存のものを組み合わせる形で作っていくなら僕にも何かできそうです!
 
自分で作るサンプルアプリのアイディアの一つとして「多機能ストップウォッチ」とかいいかもしれません。
iphoneにデフォで入ってるストップウォッチって、リセットすると消えますし、何が何秒だったかわからないじゃないですか。だから、メモみたいな形で保存できたり、記録の名前をつけてフォルダ分けして記録したりできたらちょっと便利かも。
 
Androidでストップウォッチを作ろう終了!
 
コード一部抜粋
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

startButton = (Button)findViewById(R.id.startButton);
stopButton = (Button)findViewById(R.id.stopButton);
resetButton = (Button)findViewById(R.id.resetButton);
timerLabel = (TextView)findViewById(R.id.timerLabel);

setButtonState(true, false, false);
}

public void setButtonState(boolean start, boolean stop, boolean reset){

startButton.setEnabled(start);
stopButton.setEnabled(stop);
resetButton.setEnabled(reset);
}

public void startTimer(View view){
//get StartTime
startTime = SystemClock.elapsedRealtime();

//Show the time
//Handler - Runnable(processing) - UI
updateTimer = new Runnable() {
@Override
public void run() {
long t = SystemClock.elapsedRealtime() - startTime + elapsedTime; //millisecond
SimpleDateFormat sdf = new SimpleDateFormat("mm:ss.SSS", Locale.US);
timerLabel.setText(sdf.format(t));
handler.removeCallbacks(updateTimer);
handler.postDelayed(updateTimer, 10);
}
};
handler.postDelayed(updateTimer, 10);

//control button
setButtonState(false, true, false);
}

public void stopTimer(View view){
elapsedTime += SystemClock.elapsedRealtime() - startTime;
handler.removeCallbacks(updateTimer);
setButtonState(true, false, true);
}

public void resetTimer(View view){
elapsedTime = 0l;
timerLabel.setText(R.string.timer_label);
handler.removeCallbacks(updateTimer);
setButtonState(true, false, false);
}

}
 
 
 
timerLabel = (TextView)findViewById(R.id.timerLabel);
 
このコードが抜けてて全く起動しませんでした。バグ探しって大変!
 
 
weightで幅を調節。
 
setButtonStateでメソッドを作ってあげれば、ソースコードがよりシンプルになります。
 
Memo
Command + d 今いる行を複製
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

startButton = (Button)findViewById(R.id.startButton);
stopButton = (Button)findViewById(R.id.stopButton);
resetButton = (Button)findViewById(R.id.resetButton);

setButtonState(true, false, false);
}

public void setButtonState(boolean start, boolean stop, boolean reset){

startButton.setEnabled(start);
stopButton.setEnabled(stop);
resetButton.setEnabled(reset);
}