Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.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
Java 单击获取传感器值_Java_Android - Fatal编程技术网

Java 单击获取传感器值

Java 单击获取传感器值,java,android,Java,Android,我可以使用 public void onSensorChanged(SensorEvent event) { float lux = event.values[0]; Button myButton = (Button) findViewById(R.id.button); myButton.setText(String.valueOf(lux)); 但是,我希望每次单击按钮时,它只显示1个值 public void buttonOnClick(View v) {

我可以使用

   public void onSensorChanged(SensorEvent event) {
    float lux = event.values[0];
    Button myButton = (Button) findViewById(R.id.button);
    myButton.setText(String.valueOf(lux));
但是,我希望每次单击按钮时,它只显示1个值

public void buttonOnClick(View v) {
    Button myButton = (Button) findViewById(R.id.button);
    myButton.setText(String.valueOf(lux));
在类开始时声明的var lux

public float lux;
但是,它只显示了0.0


您能帮我一下吗?

您正在将event.values[0]赋值给一个新的flaot(而不是类开头声明的成员变量)。更改您的OnSensor更改如下:

public void onSensorChanged(SensorEvent event) {
  lux = event.values[0];
  Button myButton = (Button) findViewById(R.id.button);
  myButton.setText(String.valueOf(lux));
}

顺便说一句,更好的设计是将成员变量声明为private。但那是另一回事。

请在设置值之前打印值好吗?似乎设置文本不是问题。我不确定Android在处理
runOnUIThread
线程之外的UI元素时有多严格。。。您能否发布更多有关OnClickListener的工作以及检索传感器并与传感器交互的代码?从
onSensorChanged
中删除
float
。仅保留
lux=事件值[0]