2013-10-17 69 views
1

我注意到我的android應用程序中存在一個錯誤。如何防止用戶多次點擊指向新活動的鏈接

我有一個主屏幕有4個按鈕不同的活動。

當用戶點擊其中一個按鈕時,它開始一個新的活動。以下是其中一個執行的按鈕代碼的示例。

public void button1Clicked(View view) { 
    Intent intent = new Intent(CategoryMenuActivity.this, 
      FoodMenuCategoriesActivity.class); 
    startActivity(intent); // Start the new activity 
    this.overridePendingTransition(R.anim.activity_enter, 
      R.anim.activty_exit); 
} 

現在我已經注意到,如果用戶點擊按鈕真的很快說5次。它將打開活動的5個實例。我怎樣才能防止這個?

回答

1

在UI線程中調用按鈕單擊事件,意思是說,如果禁用/隱藏/按鈕中的按鈕單擊回調,則不會再觸發點擊事件。

嘗試類似如下(不要忘記,以使在需要時):

public void button1Clicked(View view) { 
    // Disable the button 
    view.setEnabled(false); 

    Intent intent = new Intent(CategoryMenuActivity.this, 
     FoodMenuCategoriesActivity.class); 
    startActivity(intent); // Start the new activity 
    this.overridePendingTransition(R.anim.activity_enter, 
     R.anim.activty_exit); 
} 
+0

會在哪裏我再次啓用它?在活動的'onResume()'方法中? – Zapnologica

+0

這取決於你的應用程序的邏輯。基本上,您應該在用戶再次點擊該選項時將其恢復。 –

+0

那麼在這種情況下,它只是打開另一個活動,然後一段時間後應用程序返回到原來的活動。當焦點返回到活動並重新加載時,會調用onResume()嗎? – Zapnologica