Sensors 使用简单算法转换传感器值
我目前正在研制一种光传感器。我设法使传感器工作。但我想通过按下按钮将其乘以0.002来改变显示的传感器值。我似乎无法使按钮的代码相乘,因为它一直在说运算符(*)不能应用于java.lang.String,double。我尝试了double.parse,但似乎无法开始工作。这是我的密码:Sensors 使用简单算法转换传感器值,sensors,Sensors,我目前正在研制一种光传感器。我设法使传感器工作。但我想通过按下按钮将其乘以0.002来改变显示的传感器值。我似乎无法使按钮的代码相乘,因为它一直在说运算符(*)不能应用于java.lang.String,double。我尝试了double.parse,但似乎无法开始工作。这是我的密码: public class MainActivity extends AppCompatActivity implements SensorEventListener { TextView textView;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
TextView textView;
SensorManager sensorManager;
Sensor sensor;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
sensorManager = (SensorManager) getSystemService(Service.SENSOR_SERVICE);
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
Button button = (Button) findViewById(R.id.button3);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View multiply) {
textView.setText(Integer.parseInt(textView.getText().toString()*0.002));
}
});
}
@Override
protected void onPause() {
super.onPause();
sensorManager.unregisterListener(this);
}
@Override
protected void onResume() {
super.onResume();
sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_LIGHT) {
textView.setText("" + sensorEvent.values[0]);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
您应该回答问题并显示stacktrace的文本。也就是说,显然不能将字符串与double相乘。看起来您想用派生的新值更新该控件的文本。我会制作一个函数,知道如何获取文本,将其转换为数值,乘以某个因子,然后将其转换回字符串。但是你应该清楚你在做什么,@jdv这在我运行应用程序时显示/错误:二进制运算符“*”的操作数类型错误第一种类型:字符串第二种类型:double文本视图是以勒克斯为单位的数值。我很难将它乘以0.002。谢谢你的回复。所以这不是一个线程论坛。编辑问题并将这些细节放在其中,以便所有内容都放在一个地方。但是,真的。代码显示您正在尝试将字符串相乘。