OnLongClickListener 到 lock/unlock 切换按钮操作
OnLongClickListener to lock/unlock Toggle Button operation
我正在尝试在 Toggle Button
上使用长按侦听器以 lock/unlock 按钮的正常点击操作(以避免意外点击)。下面的代码似乎没有效果。我已经尝试了 .isActivated
、.isCickable
和 .isEnabled
属性,但没有成功...这可能吗?
final ToggleButton btnStartStop = (ToggleButton) findViewById(R.id.toggleAction);
btnStartStop.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (btnStartStop.isActivated()) {
btnStartStop.setActivated(false);
} else {
btnStartStop.setActivated(true);
}
return true;
}
});
您需要将代码段更改为
final ToggleButton btnStartStop = (ToggleButton) findViewById(R.id.toggleAction); btnStartStop.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (togglePref.isChecked()==(true))
{
// button is checked
}
else
{
// button is unchecked
}
return true;
}
});
也许使用布尔值?
Boolean longPress = false;
final ToggleButton btnStartStop = (ToggleButton) findViewById(R.id.toggleAction);
btnStartStop.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (longPress) {
longPress = false;
} else {
longPress = true;
}
return true;
}
});
和onClick()
:
btnStartStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!longPress){
//Do stuff
}
else{
Toast.makeText(getApplicationContext(), "Button is locked!\nLong press button to unlock it",Toast.LENGTH_SHORT).show();
}
});
我正在尝试在 Toggle Button
上使用长按侦听器以 lock/unlock 按钮的正常点击操作(以避免意外点击)。下面的代码似乎没有效果。我已经尝试了 .isActivated
、.isCickable
和 .isEnabled
属性,但没有成功...这可能吗?
final ToggleButton btnStartStop = (ToggleButton) findViewById(R.id.toggleAction);
btnStartStop.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (btnStartStop.isActivated()) {
btnStartStop.setActivated(false);
} else {
btnStartStop.setActivated(true);
}
return true;
}
});
您需要将代码段更改为
final ToggleButton btnStartStop = (ToggleButton) findViewById(R.id.toggleAction); btnStartStop.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (togglePref.isChecked()==(true))
{
// button is checked
}
else
{
// button is unchecked
}
return true;
}
});
也许使用布尔值?
Boolean longPress = false;
final ToggleButton btnStartStop = (ToggleButton) findViewById(R.id.toggleAction);
btnStartStop.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
if (longPress) {
longPress = false;
} else {
longPress = true;
}
return true;
}
});
和onClick()
:
btnStartStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(!longPress){
//Do stuff
}
else{
Toast.makeText(getApplicationContext(), "Button is locked!\nLong press button to unlock it",Toast.LENGTH_SHORT).show();
}
});