我有兩個buttons
,它們以編程方式編碼(我沒有XML
文件)。我正在嘗試切換背景onClick
,但它不會切換。ImageButton背景不能以編程方式切換
This不能幫助我,因爲它已被棄用,並且this不起作用。我知道如何處理XML
,但正如我所說的,我沒有。如何正確地在點擊後來回切換ImageButton
背景?當我點擊buttons
時,背景會發生變化,但是會保持這種狀態直到我再次單擊它。我希望它立即回到原來的狀態。
實例化的buttons
(在兩者之間大量的代碼只是顯示相關button
代碼。):
static final int leftFireButtonID = 3;
static final int rightFireButtonID = 4;
private boolean isLeftButtonClicked = false;
private boolean isRightButtonClicked = false;
leftFireButton = new ImageButton(this);
rightFireButton = new ImageButton(this);
leftFireButton.setImageResource(R.drawable.red_button);
rightFireButton.setImageResource(R.drawable.red_button);
代碼聽衆:
leftFireButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
soundPool.play(soundID,1.0f,0.5f,1,0,1.0f); //Pew pew gunfire
if(view.getId() == leftFireButtonID) {
isLeftButtonClicked = !isLeftButtonClicked;
view.setBackgroundResource(isLeftButtonClicked ? R.drawable.red_button_pressed : R.drawable.red_button); //stays...needs to change back
}
}
});
rightFireButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
soundPool.play(soundID, 0.5f, 1.0f, 1, 0, 1.0f); //Pew pew gunfire
if(view.getId() == rightFireButtonID) {
isRightButtonClicked = !isRightButtonClicked;
view.setBackgroundResource(isRightButtonClicked ? R.drawable.red_button_pressed : R.drawable.red_button); //stays....needs to change back
}
}
});
這是很容易與XML
選擇。任何幫助表示讚賞。
你需要做的是用'OnTouchListener'代替。一個'OnClickListener'只會在'ACTION_UP'事件後觸發。 –
在我回來檢查我的通知之前,我從字面上只是做了這個。大聲笑。很高興我明白了。儘管感謝您的評論! – IRGeekSauce