0

我的 onCreate 方法设置内容视图并设置图像按钮:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageButton mGetClickTime = (ImageButton) findViewById(R.id.clicker);

}

但我想创建一个改变 ImageButton 背景的方法:

public void mUpdateBackground() {
if (backgroundPic) {
    randomImageId = R.drawable.bg1;
}
else {
    randomImageId = R.drawable.bg0;
}
mGetClickTime.setImageResource(randomImageId);
}

问题是,mUpdateBackground 方法不知道布局。如果我在方法中声明布局,它将重置在 MainActivity 中以编程方式所做的所有更改。

有什么想法可以解决这个问题吗?

4

2 回答 2

4

mUpdateBackground 方法不知道布局

我将把它翻译为:

mUpdateBackground 方法不知道 ImageButton

如果这是正确的,请成为ImageButton mGetClickTime您的活动的数据成员,而不是 中的局部变量onCreate(),并mUpdateBackground()成为同一活动的方法。

于 2013-05-16T21:31:42.517 回答
3

您需要将 ImageButton 声明移动到 Activity 范围而不是onCreate()方法范围。试试这样:

public class YourActivity extends Activity{
    ImageButton mGetClickTime;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mGetClickTime = (ImageButton) findViewById(R.id.clicker);
    }


    public void mUpdateBackground() {
        if (backgroundPic) {
            randomImageId = R.drawable.bg1;
        }
        else {
            randomImageId = R.drawable.bg0;
        }
        mGetClickTime.setImageResource(randomImageId);
    }
}
于 2013-05-16T21:31:54.050 回答