我使用以下代码注册和取消注册SensorEventListener。
//Get the Toggle Button
final ToggleButton tb=(ToggleButton) findViewById(R.id.activate);
//Listener for ToggleButton
tb.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
if(tb.isChecked()){
//Register the sensor
//smanager.
smanager.registerListener(this, smanager.getDefaultSensor.TYPE_LINEAR_ACCELERATION,SensorManager.SENSOR_DELAY_NORMAL);
Log.v(classname, "Sensor Listener Unregistered");
}
else{
//deRegister the Sensor
// Unregister the listener
smanager.unregisterListener(this);
Log.v(classname, "Sensor Listener Unregistered");
}
}
});
但是我收到以下错误。
The method registerListener(SensorListener, Sensor, int) is not applicable for the arguments new View.onClickListener(),{},Sensor,int
在活动的onPause()
方法中编写相同的代码时,我没有收到此错误。有什么问题以及如何解决这个问题?
答案 0 :(得分:6)
this
指的是OnClickListener
,而不是Activity
。
将其更改为:
smanager.registerListener(YourActivityClass.this, smanager.getDefaultSensor.TYPE_LINEAR_ACCELERATION, SensorManager.SENSOR_DELAY_NORMAL);
修改以回复您的context
评论:
registerListener()
需要SensorListener
。根据你的
它适用于onResume()
评论,我假设您的Activity
实现了SensorListener
界面。上下文本身没有实现它,因为你得到了同样的错误。