这可能更多是关于类结构的问题,但是我试图在下面的代码中添加一个简单的单击侦听器。单击后,会将“ SENSOR_DELAY_FASTEST”的值更改为“ SENSOR_DELAY_NORMAL”。这样我就可以即时切换。但是正如我在MainActivity中一样,我无法实现onClickListener。谁能给我有关如何处理此问题的指示?
就像我说的。可能是由于我缺乏Java知识而阻碍了我在这里的工作。也许最好设置另一个类来处理点击?
public class MainActivity extends AppCompatActivity implements SensorEventListener {
private TextView xText, yText, zText;
private Sensor accelerometerSensor;
private SensorManager sensorManager;
@Override
public void onSensorChanged(SensorEvent event) {
// display the sensor values in the x,y and z text views
xText.setText("X: " + event.values[0]);
yText.setText("Y: " + event.values[1]);
zText.setText("Z: " + event.values[2]);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// create sensor manager
sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
// create accelerometer sensor
accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
// register listener
sensorManager.registerListener(this, accelerometerSensor, SensorManager.SENSOR_DELAY_FASTEST);
// assign text views
xText = (TextView)findViewById(R.id.xText);
yText = (TextView)findViewById(R.id.yText);
zText = (TextView)findViewById(R.id.zText);
}
}
选项1:
当然,您可以在MainActivity中做到这一点。您所要做的就是找到要侦听click事件的UI元素。例如,如果您的UI元素是simple Button
,则可以执行以下操作:
// find button with id "myButtonId" in the XML layout
Button b = (Button) findViewById(R.id.myButtonId);
// set a listener on that button
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { // gets called when clicked
// button has been clicked,
// your code here
}
});
选项2:
但是您也可以在XML布局中定义onClick_Button()
单击按钮后应调用您的方法。
在您的XML布局内:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/myButtonId"
android:text="Click Me"
android:onClick="onClick_Button">
</Button>
在您的MainActivity内部:
public void onClick_Button(View v) {
// your code here
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句