我们使用2个edittext,一个用于输入小时,一个用于输入分钟。
int CountM;
int CountT;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Mylabel = (EditText)findViewById(R.id.editText1);
Hours = (EditText)findViewById(R.id.Timer);
Minuttes = (EditText)findViewById(R.id.Minutter);
void StartTimer()
{
int TotalT = ((CountT*60*60)+(CountM*60)*1000);
mTextField = (TextView) findViewById(R.id.TimerTextView);
CountDownTimer aCounter = new CountDownTimer(TotalT, 1000)
{
public void onTick(long millisUntilFinished)
{
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish()
{
mTextField.setText("seconds remaining: " + CountM + CountT);
}
};
aCounter.start();
}
正如您所看到的,我们需要从Edittext
Hours into CountT
和Minutes into CountM
收集{{1}}的数据并将这些结果吐出来,将其缩短到几秒钟,以便我们可以将其设置为任务5小时后。
我们已尝试使用字符串并将其转换为Ints。
有什么建议?
答案 0 :(得分:0)
有一件事:
((CountT * 60 * 60)+(COUNT分钟* 60)* 1000); //稍微展开一下:
((CountT * 60 * 60)+(CountM * 60)* 1000); // hours / CountT不能乘以1000
如果对运算符优先级有任何疑问,请使用额外的括号 如果对运算符优先级毫无疑问,请使用额外的括号。
调试101技巧#34 - 将复杂的表达式分解为更简单的表达式,这些表达式加载单独的本地变量,以便在调试器中可以轻松看到精确的操作序列。如果你写了:
int minsTicks=CountM*60*1000;
int hoursTicks=CountT*60*60;
int totalTicks=hoursTicks+minsTicks;
你会直接看到这个问题,事实上,你可能不会在第一时间做到这一点!
答案 1 :(得分:0)
假设您的布局中有Button
,点击哪个,您需要启动计时器,相同的代码将是:
Button startBtn;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Mylabel = (EditText)findViewById(R.id.editText1);
Hours = (EditText)findViewById(R.id.Timer);
Minuttes = (EditText)findViewById(R.id.Minutter);
startBtn = (Button)findViewById(R.id.startBtn);
startBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try{
String hourStr = Hours.getText().toString();
CountT = Integer.parseInt(hourStr);
String minuteStr = Minuttes.getText().toString();
CountM = Integer.parseInt(minuteStr);
StartTimer();
}catch(NumberFormatException ex){
ex.printStackTrace();
}
}
});
}
建议:当您还在学习时,理解并遵循Java Code Conventions
是个不错的主意。