【发布时间】:2014-01-22 21:14:01
【问题描述】:
我希望进行一些更改,这样我就不必重复我的代码(有意义)!
这是我现在所拥有的:
package com.rcd.learningactivities;
import java.text.DecimalFormat;
import java.util.concurrent.TimeUnit;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView blueTimer = (TextView) findViewById(R.id.blueTimer);
Button blue = (Button) findViewById(R.id.button1);
final TextView redTimer = (TextView) findViewById(R.id.redTimer);
Button red = (Button) findViewById(R.id.button2);
final CountDownTimer cd = new CountDownTimer(300000, 1000) {
public void onTick(long millisUntilFinished) {
DecimalFormat dfmin = new DecimalFormat("0");
DecimalFormat dfsec = new DecimalFormat("00");
double seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished)%60;
double min = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
blueTimer.setText(String.valueOf(dfmin.format(min)) + ":" + String.valueOf(dfsec.format(seconds)));
}
public void onFinish() {
blueTimer.setText("5:00");
}
};
blue.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (blueTimer.getText().toString().contains("5:00")){
cd.start();
} else {
cd.cancel();
cd.onFinish();
}
}
});
red.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (redTimer.getText().toString().contains("5:00")){
cd.start();
} else {
cd.cancel();
cd.onFinish();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
我希望 blue.setOnClickListener 和 red.setOnClickListener 都能够使用我的 cd CountDownTimer 但是我需要 blueTimer.setText(String...) 才能更改为 redTimer.setText(String...)基于用户单击的按钮。
我真的希望这是有道理的,如果我倒退了,请告诉我。
本质上我想在上面的onTick方法中制作blueTimer,变量x。
【问题讨论】: