在另一种方法中使用setBackgroundResource?

时间:2012-07-27 08:58:48

标签: android eclipse

我的onCreate-method中有以下代码:

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无法解析为变量......

3 个答案:

答案 0 :(得分:1)

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

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);
}

答案 1 :(得分: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);

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

答案 2 :(得分:0)

ImageView field1;    

在onCreate方法的基础上设置ImageView,因为它可以被整个类使用