问题描述
嗨,我只在按下按钮(不是物理按钮)时才尝试点亮android上的led 所以我在下面尝试了这段代码,但不适用于未按下的方法: 我只想在按下按钮的时候被引导打开
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
if(!button.isPressed()){
try {
mLightGpio = mPeripheralManager.openGpio("BCM3");
mLightGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_HIGH);
} catch (IOException e) {
e.printStackTrace();
}
}
else
{
try {
mLightGpio = mPeripheralManager.openGpio("BCM3");
mLightGpio.setDirection(Gpio.DIRECTION_OUT_INITIALLY_LOW);
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
}
解决方法
因为onClick仅调用一次。我建议在按下按钮时点亮LED(ACTION_DOWN),并在释放按钮时将其关闭(ACTION_UP)。
使用类似这样的内容:
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v,MotionEvent event) {
switch (event.getAction() ) {
case MotionEvent.ACTION_DOWN:
// light up
break;
case MotionEvent.ACTION_UP:
// turn off
break;
}
return false;
}
});