2014-10-04 66 views
0

在我的Android项目中,用户在按钮处单击几次,所以如果已按下该按钮,我想阻止该按钮。现在SaveOrder()方法被触发几次,这是不可接受的。如何避免用户在Android的OptionsItemSelected按钮上点击几次?

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
    case R.id.order_save: 
     Log.d("Custom Synchronization", "Click!"); 
     SaveOrder(); 

     canQuit = true; 
     hasAcceptQuit = true; 
     onBackPressed(); // navigate to other acitivty 
     return true; 
    case R.id.order_adnotation: 
     setAdnotationOrder(); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

回答

0

你可以使用以虚假的一样,开始一个布尔值,然后调用时您检查布尔的SaveOrder方法是错误的,并改变它

private static boolean hasPressed = false; 

和:

if(!hasPressed) { 
    SaveOrder(); 
    hasPressed = true; 
} 

然后,在执行该方法之后,您可以再次更改布尔值,以便用户可以再次调用该方法。请注意,点击动画仍然会发生,因此请考虑向用户展示Toast等内容,以便通知用户正在进行的操作。

+0

嗯,它不工作。当我点击3次并在SaveOrder()之前阻止hasPressed时;然后添加hasPressed为false在SaveOrder结束时它会触发方法SaveOrder 3次... – boski 2014-10-04 11:53:00

+0

也许我可以在离开当前活动时将hasPressed设置为true。要离开它,我使用onBackPressed() – boski 2014-10-04 11:54:51

+0

你是不是把hasPressed设置为false?那么,这取决于你的应用程序,试试看它是否有效。 – tibuurcio 2014-10-04 12:03:30

相关问题