Android 如何在按钮内注册传感器侦听器';什么是onClick方法?

Android 如何在按钮内注册传感器侦听器';什么是onClick方法?,android,button,overriding,listener,accelerometer,Android,Button,Overriding,Listener,Accelerometer,我有一个应用程序,我想在单击按钮时启动加速计的侦听器,因此我尝试了以下方法: private SensorManager sensorManager; @Override public void onCreate (Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.storing_act); Button start = (Button)fi

我有一个应用程序,我想在单击按钮时启动加速计的侦听器,因此我尝试了以下方法:

private SensorManager sensorManager;

@Override
public void onCreate (Bundle savedInstanceState){

    super.onCreate(savedInstanceState);
    setContentView(R.layout.storing_act);

    Button start = (Button)findViewById(R.id.startl);

    start.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
            sensorManager.registerListener(this, 
                    sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                    SensorManager.SENSOR_DELAY_NORMAL);
        }
    });
但它显示了一条带有

类型SensorManager中的方法registerListener(SensorEventListener,Sensor,int)不适用于参数(new View.OnClickListener(){},Sensor,int)


有没有一个简单的解决方法?我必须重写任何其他方法吗?谢谢您需要使用
MyActivity。这
是因为
指的是
OnClickListener
,而
registerListener
方法需要
SensorEventListener

public class MyActivity extends Activity implements SensorEventListener {
    @Override
    public void onCreate (Bundle savedInstanceState){

        super.onCreate(savedInstanceState);
        setContentView(R.layout.storing_act);

        Button start = (Button)findViewById(R.id.startl);

        start.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
                sensorManager.registerListener(MyActivity.this, 
                        sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                        SensorManager.SENSOR_DELAY_NORMAL);
            }
        });
}

您应该传递ActivityName。您正在尝试向传感器管理器注册一个
视图
侦听器,正如错误显示的那样,该侦听器需要一个。谢谢,现在它可以正常工作了