我对编码不是很好,但是我已经开始使用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();
}
}
}
}}
它应该是一个速度表,我不确定代码有什么问题。
您要么忘记了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();
}
}
}