我需要在此活动中启动倒数计时器。它应该从按钮开始。下面我带了代码片段。
我认为我做的一切都是正确的,但它不起作用 - 为什么会这样?
isNext=true and isPrevious=true
xml中的按钮
public class Step5 extends AppCompatActivity {
Button mgo;
public TextView timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.step5);
timer = (TextView) findViewById(R.id.timer);
mgo = (Button) findViewById(R.id.go);
mgo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new CountDownTimer(900000,1000) {
@Override
public void onTick(long millisUntilFinished) {
timer.setText((int)millisUntilFinished/1000);
}
@Override
public void onFinish() {
timer.setText("Done");
}
}.start();
}
});
}}
答案 0 :(得分:0)
问题在于timer.setText((int)millisUntilFinished / 1000);一部分。
timer.SetText()需要一个字符串作为参数。
请尝试以下方法 timer.setText(将String.valueOf((int)的millisUntilFinished / 1000));
它将100%工作。
答案 1 :(得分:0)
问题在于以下代码段:
timer.setText((int)millisUntilFinished/1000);
在传递setText()
类型的参数时, String
方法仅接受int
作为参数类型。因此,您可以尝试使用String类的valueOf()
静态方法,以便将int
值类型转换为String
对象。以下是建议的解决方案:
timer.setText(String.valueOf((int)millisUntilFinished/1000));
然而,应该注意的是,如果您编译提交的代码,您将收到以下编译错误:
错误:不兼容的类型:int无法转换为String
这意味着您的代码将被编译错误,编译器肯定会注意到您。
此外,如果您使用像Netbeans这样的Java IDE,那么您会因下面的通知而注意到此错误:
不兼容的类型:int无法转换为String
总结一下,我们可以通过阅读IDE的警告以及编译器消息的第二步来避免这些错误。