私は2つの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