如何避免双击我的例子,任何解决方案?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.testing) {
Dialog();
return super.onOptionsItemSelected(item);
}
有很多方法可以实现这一目标。我只是举例说明。
只需在Activity类中创建一个布尔变量。
Boolean isClicked = false;
然后
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.testing) {
if (!isClicked){
//Change here as your flag is true
isClicked = true;
Dialog();
}
return super.onOptionsItemSelected(item);
}
然后此对话框仅显示一次。如果需要任何更改请询问。
可悲的是,但以下选项中没有任何内容对我有用..
最后得到了一个方法,可以防止菜单项上的“疯狂双击行为”,这比双击简单按钮,imo更糟糕。
//定义Fragment / Activity变量
volatile private byte saveClickCounter = 0;
// 实行
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case R.id.common_action_save:
if (saveClickCounter++ == 0) {
saveButtonClick();
} else {
Log.i(TAG, "OMG! U R fast!");
}
return true;
}
return super.onOptionsItemSelected(item);
}
在成功调用方法之后,不要忘记再次使该变量等于零(或减少该变量)。
saveClickCounter--;
另一个简单的方法与@AlexV类似,使用增量运算符
创建一个全局变量
private var saveClickCounter: Int = 0
在onOptionsItemSelected中
val id = item.itemId
if (id == R.id.save)
{
if (saveClickCounter == 0) {
Log.d(TAG, "clickedd")
saveClickCounter++
} else {
Log.d(TAG, "OMG! U R fast!");
}
}