0

我正在使用以下代码注册和注销 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()在活动的方法中编写相同的代码时,我没有收到此错误。有什么问题以及如何解决这个问题?

4

1 回答 1

6

this指的是OnClickListener而不是你的Activity.

将其更改为:

smanager.registerListener(YourActivityClass.this, smanager.getDefaultSensor.TYPE_LINEAR_ACCELERATION, SensorManager.SENSOR_DELAY_NORMAL);

编辑以回答您的context评论:

registerListener()需要一个SensorListener. 根据你的

它适用于 onResume()

评论,我假设你Activity实现了SensorListener接口。上下文本身并没有实现它,因此你会得到同样的错误。

于 2012-10-13T14:21:12.010 回答