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。您正在尝试向传感器管理器注册一个视图
侦听器,正如错误显示的那样,该侦听器需要一个。谢谢,现在它可以正常工作了