OnLongClickListener 锁定/解锁切换按钮操作
Posted
技术标签:
【中文标题】OnLongClickListener 锁定/解锁切换按钮操作【英文标题】:OnLongClickListener to lock/unlock Toggle Button operation 【发布时间】:2016-06-13 16:42:53 【问题描述】:我正在尝试在 Toggle Button
上使用 Long-Click 侦听器来锁定/解锁按钮的正常单击操作(以避免意外单击)。下面的代码似乎没有效果。我试过.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;
);
【问题讨论】:
你为什么要长按。您可以使用单击或 setOnCheckedChangeListener 【参考方案1】:也许使用布尔值?
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();
);
【讨论】:
【参考方案2】:你需要把你的sn-p改成
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;
);
【讨论】:
这些方法如何锁定/解锁切换按钮的使用?这是我的首要要求。我想使用长按事件来启用/禁用同一个按钮的正常点击操作。 @ChrisKing 我没有收到你的问题。请更具体以上是关于OnLongClickListener 锁定/解锁切换按钮操作的主要内容,如果未能解决你的问题,请参考以下文章