Android onOptionsItemSelected 避免双击
Android onOptionsItemSelected avoid double click
如何避免双击我的例子,有什么解决办法吗?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.testing) {
Dialog();
return super.onOptionsItemSelected(item);
}
有很多方法可以实现这一点。我只是在讲述示例。
只需在 Activity class.
中创建一个布尔变量
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);
}
那么这个对话框只显示一次。如果需要任何更改,请询问。
遗憾的是,下面的选项对我没有任何作用..
- 禁用视图可点击性 - 对于“MAD”来说似乎太慢了
点击器
- 在点击时设置一些布尔值(如 isClicked 为 true)并在 onClickListener 中检查它 - 看起来很快,但还不够
终于找到了一个方法来阻止 "mad double click behaviour" 菜单项,这比双击简单按钮更糟糕,imo。
//定义片段/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!");
}
}
如何避免双击我的例子,有什么解决办法吗?
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.testing) {
Dialog();
return super.onOptionsItemSelected(item);
}
有很多方法可以实现这一点。我只是在讲述示例。
只需在 Activity class.
中创建一个布尔变量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);
}
那么这个对话框只显示一次。如果需要任何更改,请询问。
遗憾的是,下面的选项对我没有任何作用..
- 禁用视图可点击性 - 对于“MAD”来说似乎太慢了 点击器
- 在点击时设置一些布尔值(如 isClicked 为 true)并在 onClickListener 中检查它 - 看起来很快,但还不够
终于找到了一个方法来阻止 "mad double click behaviour" 菜单项,这比双击简单按钮更糟糕,imo。
//定义片段/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!");
}
}