我收到以下错误
文件MainActivity.java错误类型: SensorTagData类型中的extractAccelerometer(BluetoothGattCharacteristic)方法不适用于参数(BluetoothGattCharacteristic,TextView)
private void updateAccelerometerValue(BluetoothGattCharacteristic characteristic){
double accelerometer = SensorTagData.extractAccelerometer(characteristic,mAccelerometer); //ERROR HERE//
mAccelerometer.setText(String.format("%.4f", accelerometer));
}
}
和我班级的定义:
public class SensorTagData {
public static double extractHumAmbientTemperature(BluetoothGattCharacteristic c) {
int rawT = shortSignedAtOffset(c, 0);
return -46.85 + 175.72/65536 *(double)rawT;
}
public static double extractAccelerometer(BluetoothGattCharacteristic c) {
Integer x = c.getIntValue(FORMAT_SINT8, 0);
Integer y = c.getIntValue(FORMAT_SINT8, 1);
Integer z = c.getIntValue(FORMAT_SINT8, 2) * -1;
double scaledX = x / 64.0;
double scaledY = y / 64.0;
double scaledZ = z / 64.0;
return (double) scaledX scaledY scaledZ ;
}
}
我做错了什么?
答案 0 :(得分:0)
错误信息非常清楚:
Error Type: The method extractAccelerometer(BluetoothGattCharacteristic) in the
type SensorTagData is not applicable for the arguments
(BluetoothGattCharacteristic, TextView)
extractAccelerometer
的方法签名指定该方法只接受一个参数。
extractHumAmbientTemperature(BluetoothGattCharacteristic)
但是,在调用此方法时,您传递的是两个参数。显然,从错误消息中可以清楚地看出参数数量不匹配。任何相当不错的IDE都应该能够指出这一点。
extractAccelerometer(characteristic,mAccelerometer);
^^^^^^^^^^^^^^
extra argument
如果你的方法声明是正确的,或者你想要定义它的方式,那么解决这个问题的简单方法就是去除这个额外的参数,然后像这样调用函数:
extractAccelerometer(characteristic)
答案 1 :(得分:0)
您传入了额外的参数mAccelerometer
。删除它。
double accelerometer = SensorTagData.extractAccelerometer(characteristic); // <-- the extra parameter has been removed