gpt4 book ai didi

java - 在另一个方法中使用 onSensorChanged() 的值

转载 作者:行者123 更新时间:2023-12-02 10:26:43 26 4
gpt4 key购买 nike

我需要在另一种方法中使用传感器的值。我不知道如何从 onSensorChanged() 方法获取值。

我尝试创建一个全局字段,在其中写入传感器值,但在 onSensorChanged() 方法之外该字段为空。 我已经在 onSensorChanged() 事件的 textView 中显示了传感器值,它在这里工作。显示的值不为空。 当我尝试在 onSensorChanged() 之外显示来自传感器的数据时,在 onCreate 事件的 textView 中显示的数据为空。

//类级别的全局变量

 float mean_acc;

//onSensorChanged()方法

 public void onSensorChanged(SensorEvent sensorEvent) {
mean_acc = sensorEvent.values[1];
}




public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

Log.d(TAG, "onCreate: Initializing Sensor Services");
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
Log.d(TAG, "onCreate:Registered");

accelView = (TextView) findViewById(R.id.accelDataView);
accelView.setText(String.valueOf(mean_acc));
}

没找到问题出在哪里。你能帮我一下吗?

最佳答案

根据您的编码,您有方法 onCreate当 Activity 创建时调用一次,之后就不会再次调用。所以,当 onSensorChanged方法调用您需要在该方法内设置文本,您将在其中获得 mean_acc值,意味着您需要在 onSensorChanged 内设置文本方法。所以你的代码将是:

public void onSensorChanged(SensorEvent sensorEvent) {
mean_acc = sensorEvent.values[1];
accelView.setText(String.valueOf(mean_acc));
}

无论您在何处使用该传感器,每次该传感器发生变化时,此方法都会发出通知。

关于java - 在另一个方法中使用 onSensorChanged() 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53894658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com