如何修复车速表学术任务中的错误?

问题描述 投票:-1回答:1

我对编码不是很好,但是我已经开始使用Java为我的机器人课程制作一个速度计应用程序。有很多错误,我只是不确定如何修复它们。

一些确切的问题是:

1:          location.setUseMericUnits(this.useMetricUnits());
            nCurrentSpeed = location.getSpeed()

useMetricUnits用红色加下划线“无法解析方法'useMetricUnits()'

2:         if(this.useMetricUnits()){
    tv_speed.setText(strCurrentSpeed + " km/h");

它与useMetricUnits有相同的问题

3:    private boolean useMetricUnits() {
        return Sw_metric.isChecked();

useMetricUnits()说; expected and return Sw_metric.isChecked() says cannot return a value from a method with a void result type

4:   @Override
        public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,
        @NonNull int[] grantResults) {

@Override说这里不允许注释,(int request表示; expect和@NonNull表示两者都有预期的标识符

 private void updateSpeed(CLocation location){
    float nCurrentSpeed = 0;

    if(location != null){
        location.setUseMericUnits(this.useMetricUnits());
        nCurrentSpeed = location.getSpeed();
    }

    Formatter fmt = new Formatter(new StringBuilder());
    fmt.format(Locale.US, "%5.1" , nCurrentSpeed);
    String strCurrentSpeed = fmt.toString();
    strCurrentSpeed =strCurrentSpeed.replace(" ", "0");

    if(this.useMetricUnits()){
        tv_speed.setText(strCurrentSpeed + " km/h");
    }
    else {
        tv_speed.setText(strCurrentSpeed + " mp/h");
}
private boolean useMetricUnits() {
    return Sw_metric.isChecked();
}

    @Override
    public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,
    @NonNull int[] grantResults) {
    if(requestCode == 1000) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            doStuff();
        } else {
            finish();
        }
    }
}
}}

它应该是一个速度表,我不确定代码有什么问题。

java override
1个回答
2
投票

您要么忘记了updateSpeed末尾的else子句的结束括号,要么忘记了updateSpeed方法的结束括号。

结果是updateSpeed方法的结束发生在您发布的代码中的倒数第二个括号,另外两个方法在updateSpeed中定义。

useMetricUnits之前添加另一个}应解决您所看到的错误:

...
    else {
        tv_speed.setText(strCurrentSpeed + " mp/h");
    }
}

private boolean useMetricUnits() {
    return Sw_metric.isChecked();
}

@Override
public void onRequestPermissionsResult(int requestCode,
                                       @NonNull String[] permissions,
                                       @NonNull int[] grantResults) {
    if(requestCode == 1000) {
        if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            doStuff();
        } else {
            finish();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.