0
我想傾聽AlertDialog
的positive
按鈕上的點擊,該按鈕通過呼叫button.setEnabled(false);
而被禁用。正在監聽已禁用的AlertDialog按鈕的點擊
我該怎麼做?如果這是不可能的,是否有一個已知的解決方法?
PS。我想這樣做的原因是,當有人按下按鈕時,我想表示敬酒,並說:「你需要這樣做才能繼續」。
我想傾聽AlertDialog
的positive
按鈕上的點擊,該按鈕通過呼叫button.setEnabled(false);
而被禁用。正在監聽已禁用的AlertDialog按鈕的點擊
我該怎麼做?如果這是不可能的,是否有一個已知的解決方法?
PS。我想這樣做的原因是,當有人按下按鈕時,我想表示敬酒,並說:「你需要這樣做才能繼續」。
這不是聽取點擊禁用按鈕的方法。這是一種解決方法。
我喜歡我通過改變按鈕的顏色,使它看起來像它被禁用的結果。
你想做什麼:
// Instantiate positive button
final Button posButton = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE);
// Save the original button's background
final Drawable bg = posButton.getBackground();
// Set button's looks based on boolean
if (buttonDisabled) {
posButton.setTextColor(getResources().getColor(R.color.disabledButtonColor, null));
// R.color.disabledButtonColor == #DBDBDB, which is pretty close to
// the color a disabled button gets.
posButton.setBackgroundColor(Color.TRANSPARENT);
// Color.TRANSPARENT makes sure all effects the button usually shows disappear.
} else {
posButton.setTextColor(getResources().getColor(R.color.colorPrimaryDark, null));
// R.color.colorPrimaryDark is the color that gets used all around my app.
// It was the closest to the original for me.
posButton.setBackground(bg);
// bg is the background we got from the original button before.
// Setting it here also re-instates the effects the button should have.
}
現在,不要忘了抓住你的按鈕操作時,它的「已禁用」
public void onClick(View v) {
if (buttonDisabled) {
// Button is clicked while it's disabled
} else {
// Button is clicked while it's enabled, like normal
}
}
這應該做的,有樂趣。
爲什麼不在用戶完成某個任務之前隱藏該按鈕? – Eenvincible
這是一個選項,但這只是讓對話變得不那麼容易理解,而我想讓它變得更容易理解(用敬酒中的提示)。你的建議與我目前所掌握的相同(隱藏與禁用)。 – Timmiej93
當按鈕被禁用時,我不太瞭解如何監聽點擊。所以我想如果用戶沒有完成任務,只是不禁用按鈕,就可以顯示敬酒。 – Eenvincible