AndroidView中的ImageView按钮切换

时间:2012-05-03 19:23:46

标签: android button imagebutton

当我点击它时,我正在尝试制作一个ImageView按钮。我有以下代码:

    ImageView button01 = (ImageView) findViewById(R.id.button01);
    button01.setOnClickListener(new OnClickListener() {
        int button01pos = 0;
        public void onClick(View v) {
            if (button01pos == 0) {
                button01.setImageResource(R.drawable.image01);
                button01pos = 1;
            } else if (button01pos == 1) {
                button01.setImageResource(R.drawable.image02);
                button01pos = 0;
            }
        }
    });

但是由于某种原因,在Eclipse中,button01以红色加下划线并且出现错误:

  

不能引用内部类中的非final变量button01   用不同的方法定义

有谁知道为什么会这样做以及如何解决它?

由于

3 个答案:

答案 0 :(得分:6)

以下是工作代码:

final ImageView button01 = (ImageView) findViewById(R.id.button01);
button01.setOnClickListener(new OnClickListener() {
    int button01pos = 0;
    public void onClick(View v) {
        if (button01pos == 0) {
            button01.setImageResource(R.drawable.image01);
            button01pos = 1;
        } else if (button01pos == 1) {
            button01.setImageResource(R.drawable.image02);
            button01pos = 0;
        }
    }
});

答案 1 :(得分:0)

试试这个,它对我有用。复选框可见性设置为“隐形”......! 这段代码在OnClickListener按钮里面......!

@Override
public void onClick(View v) {

    ImageView iv_icon = (ImageView) findViewById(R.id.icon);

    CheckBox cb = (CheckBox) findViewById(R.id.cb);

    if (cb.isChecked()) {
        iv_icon.setImageResource(R.drawable.image01);
        cb.setChecked(false);
    } else if (!cb.isChecked()) {
        iv_icon.setImageResource(R.drawable.image02);
        cb.setChecked(true);
    } else {
        // Nothing happens
    }
}

答案 2 :(得分:0)

试试这个,

        int button01pos = 0;

        ImageView button01 = (ImageView) findViewById(R.id.button01);
        button01.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            if (button01pos == 0) {
                button01.setImageResource(R.drawable.image01);
                button01pos = 1;
            } else if (button01pos == 1) {
                button01.setImageResource(R.drawable.image02);
                button01pos = 0;
            }
        }
    });