为什么下面的Java代码不起作用?

时间:2017-11-05 16:18:57

标签: java android countdowntimer

我需要在此活动中启动倒数计时器。它应该从按钮开始。下面我带了代码片段。

我认为我做的一切都是正确的,但它不起作用 - 为什么会这样?

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();
    }
});
}}

2 个答案:

答案 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的警告以及编译器消息的第二步来避免这些错误。