2014-10-04 42 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

相關問題