Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sensors 使用简单算法转换传感器值_Sensors - Fatal编程技术网

Sensors 使用简单算法转换传感器值

Sensors 使用简单算法转换传感器值,sensors,Sensors,我目前正在研制一种光传感器。我设法使传感器工作。但我想通过按下按钮将其乘以0.002来改变显示的传感器值。我似乎无法使按钮的代码相乘,因为它一直在说运算符(*)不能应用于java.lang.String,double。我尝试了double.parse,但似乎无法开始工作。这是我的密码: public class MainActivity extends AppCompatActivity implements SensorEventListener { TextView textView;

我目前正在研制一种光传感器。我设法使传感器工作。但我想通过按下按钮将其乘以0.002来改变显示的传感器值。我似乎无法使按钮的代码相乘,因为它一直在说运算符(*)不能应用于java.lang.String,double。我尝试了double.parse,但似乎无法开始工作。这是我的密码:

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。谢谢你的回复。所以这不是一个线程论坛。编辑问题并将这些细节放在其中,以便所有内容都放在一个地方。但是,真的。代码显示您正在尝试将字符串相乘。