北京邮电大学世
private int mCaloriesValue;// mCaloriesValueView的值 private float mDesiredPaceOrSpeed;// private int mMaintain;// is爬山
private boolean mIsMetric=true;// 公制和米制切换标志 private float mMaintainInc;//
private boolean mQuitting = false; // private Button resetButton;
private Button start_pause_button;
// Set when user selected Quit from menu, can be used by onPause, onStop, // onDestroy /**
* True, when service is running. */
private boolean mIsRunning;// 程序是否运行的标志位 /** Called when the activity is first created. */ @Override
// 开始函数,重写该函数,加入日志。 @Override
protected void onStart() {
Log.i(TAG, \ super.onStart(); }
// 重写回复函数 @Override
protected void onResume() {
Log.i(TAG, \ super.onResume();
mSettings = PreferenceManager.getDefaultSharedPreferences(this); mPedometerSettings = new PedometerSettings(mSettings); mUtils.setSpeak(mSettings.getBoolean(\
// Read from preferences if the service was running on the last onPause mIsRunning = mPedometerSettings.isServiceRunning();
// Start the service if this is considered to be an application start // (last onPause was long ago)
mPedometerSettings.clearServiceRunning();
mStepValueView = (TextView) findViewById(R.id.step_value); mPaceValueView = (TextView) findViewById(R.id.pace_value);
mDistanceValueView = (TextView) findViewById(R.id.distance_value); mSpeedValueView = (TextView) findViewById(R.id.speed_value);
27
北京邮电大学世
mCaloriesValueView = (TextView) findViewById(R.id.calories_value); mDesiredPaceView = (TextView) findViewById(R.id.desired_pace_value); // 重设按钮
resetButton = (Button) findViewById(R.id.reset_button); resetButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
resetValues(true); } });
// 开始/暂停按钮 start_pause_button = (Button) findViewById(R.id.start_pause_button);
start_pause_button.setText(mIsRunning ? R.string.pause : R.string.resume);
start_pause_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if
(start_pause_button.getText().equals(getResources().getString(R.string.pause)))
{
start_pause_button.setText(R.string.resume); unbindStepService(); stopStepService(); } else if (start_pause_button.getText().equals(getResources().getString(R.string.resume)))
{
start_pause_button.setText(R.string.pause); startStepService(); bindStepService(); } } });
mIsMetric = mPedometerSettings.isMetric(); ((TextView) findViewById(R.id.distance_units))
.setText(getString(mIsMetric ? R.string.kilometers
28
北京邮电大学世
: R.string.miles));
((TextView) findViewById(R.id.speed_units))
.setText(getString(mIsMetric ? R.string.kilometers_per_hour : R.string.miles_per_hour));
mMaintain = mPedometerSettings.getMaintainOption(); if (mMaintain == PedometerSettings.M_PACE) {
mMaintainInc = 5f; mDesiredPaceOrSpeed = (float) mPedometerSettings.getDesiredPace(); }
else if (mMaintain == PedometerSettings.M_SPEED) {
mDesiredPaceOrSpeed = mPedometerSettings.getDesiredSpeed(); mMaintainInc = 0.1f; }
Button button1 = (Button) findViewById(R.id.button_desired_pace_lower);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mDesiredPaceOrSpeed -= mMaintainInc;
mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;
displayDesiredPaceOrSpeed();
setDesiredPaceOrSpeed(mDesiredPaceOrSpeed); } }); Button button2 = (Button) findViewById(R.id.button_desired_pace_raise);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mDesiredPaceOrSpeed += mMaintainInc;
mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;
displayDesiredPaceOrSpeed();
setDesiredPaceOrSpeed(mDesiredPaceOrSpeed); } });
29
北京邮电大学世
@Override
protected void onPause() {
Log.i(TAG, \ if (mIsRunning) {
unbindStepService(); }
if (mQuitting) {
mPedometerSettings.saveServiceRunningWithNullTimestamp(mIsRunning); } else {
mPedometerSettings.saveServiceRunningWithTimestamp(mIsRunning); }
super.onPause(); savePaceSetting(); } }
// 开始/暂停按钮
{
public void onClick(View v) {
if
(start_pause_button.getText().equals(getResources().getString(R.string.pause)))
{
start_pause_button.setText(R.string.resume); unbindStepService(); stopStepService(); }
else if
(start_pause_button.getText().equals(getResources().getString(R.string.resume)))
{
start_pause_button.setText(R.string.pause); startStepService(); bindStepService();
30
北京邮电大学世
} } });
mIsMetric = mPedometerSettings.isMetric(); ((TextView) findViewById(R.id.distance_units))
.setText(getString(mIsMetric ? R.string.kilometers : R.string.miles));
((TextView) findViewById(R.id.speed_units))
.setText(getString(mIsMetric ? R.string.kilometers_per_hour : R.string.miles_per_hour));
mMaintain = mPedometerSettings.getMaintainOption();
((LinearLayout) this.findViewById(R.id.desired_pace_control)) .setVisibility(mMaintain != PedometerSettings.M_NONE ? View.VISIBLE
: View.GONE);
if (mMaintain == PedometerSettings.M_PACE) {
mMaintainInc = 5f;
mDesiredPaceOrSpeed = (float) mPedometerSettings.getDesiredPace(); }
else if (mMaintain == PedometerSettings.M_SPEED) {
mDesiredPaceOrSpeed = mPedometerSettings.getDesiredSpeed(); mMaintainInc = 0.1f; }
Button button1 = (Button)
findViewById(R.id.button_desired_pace_lower);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mDesiredPaceOrSpeed -= mMaintainInc;
mDesiredPaceOrSpeed = Math.round(mDesiredPaceOrSpeed * 10) / 10f;
displayDesiredPaceOrSpeed();
setDesiredPaceOrSpeed(mDesiredPaceOrSpeed); } });
31