1

我的 onCreate 方法中有以下代码:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final ImageView field1 = (ImageView) findViewById(R.id.field1);
    field1.setBackgroundResource(R.drawable.field0);

如何在任何其他方法中设置 BackgroundResource,如下所示:

public void setBackground() {
    field1.setBackgroundResource(R.drawable.field2);
}

它说, field1 无法解析为变量...

4

3 回答 3

1

将 field1 设置为类的 global,如下所示:

ImageView field1=null;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    field1 = (ImageView) findViewById(R.id.field1);
    field1.setBackgroundResource(R.drawable.field0);

}


public void setBackground() {
    field1.setBackgroundResource(R.drawable.field2);
}
于 2012-07-27T09:03:17.770 回答
0

您需要将视图放在函数的参数中:

public void setBackground(ImageView view) {
    view.setBackgroundResource(R.drawable.field2);
}

现在你可以这样称呼它:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final ImageView field1 = (ImageView) findViewById(R.id.field1);
    setBackground(field1);

无论如何,您可能应该阅读一些代码教程以学习编码的基础。

于 2012-07-27T09:01:50.627 回答
0
ImageView field1;    

在 onCreate 方法之上设置 ImageView,因为它可以被整个班级使用

于 2012-07-27T09:04:54.467 回答