我有一個帶有OnClickListener的按鈕。爲了說明的目的,考慮一個按鈕,顯示模態對話框:處理按鈕上的快速點擊
public class SomeActivity ... {
protected void onCreate(Bundle state) {
super.onCreate(state);
findViewById(R.id.ok_button).setOnClickListener(
new View.OnClickListener() {
public void onClick(View v) {
// This should block input
new AlertDialog.Builder(SomeActivity.this)
.setCancelable(true)
.show();
}
});
}
正常使用情況下,將顯示警告對話框和塊進一步輸入。用戶必須關閉對話框才能再次點擊該按鈕。
但是在對話框出現之前,有時會調用按鈕的OnClickListener兩次。您可以通過點擊按鈕非常快速地複製它。我通常必須在發生之前嘗試多次,但遲早我會在對話框阻止輸入之前觸發多個onClick(...)調用。
我在Motorola Droid手機上的Android 2.1中看到了這種行爲。我們在市場上收到了4次崩潰報告,表明偶爾會發生這種情況。
這取決於我們的OnClickListeners做什麼,這會導致各種各樣的混亂。我們如何確保阻止對話在第一次敲擊後實際上阻止輸入?
您是否嘗試在onClick()外部創建AlertDialog,並在onClick()中調用show()? – jfpoilpret 2010-05-22 00:42:50