2

我希望我的图像按钮每次单击时都从一个图像更改为另一个图像。在我的代码中,这只工作一次,图像发生变化,按钮不会变回 onClick。

有人可以帮忙吗?

package com.wepromoteme.brapp;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

setupPlayPauseButton1();

} 

private void setupPlayPauseButton1() {
    ImageButton btn1 = (ImageButton) findViewById(R.id.play_pause1);

    btn1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            ImageButton btn1 = (ImageButton)
findViewById(R.id.play_pause1);
            btn1.setImageResource(R.drawable.play);
        }
    });
}
}

谢谢

@shree202

这是新代码:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

setupPlayPauseButton1();

} 

private void setupPlayPauseButton1() {
    final ImageButton btn1 = (ImageButton) findViewById(R.id.play_pause1);

    btn1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            int i=0;
            if(i%2==0) {
                btn1.setImageResource(R.drawable.play);
            } else {
                btn1.setImageResource(R.drawable.pause);

            }
        }
    });
}
}

谢谢

4

1 回答 1

1

您应该扩展ImageButton并保持 Button 的状态。因此,它会将您的单击侦听器更改为以下内容:

    @Override
    public void onClick(View v) {
        MyImageButton btn1 = (MyImageButton) findViewById(R.id.play_pause1);
        btn1.toggleState();
        switch(btn1.getState()){
           case 0:
              btn1.setImageResource(R.drawable.play);
              break;
           case 1:
              bt1.setImageResource(R.drawable.stop);
              break;
        }
    }
于 2013-08-26T17:18:15.693 回答