Использовать setBackgroundResource в другом методе?

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

Он говорит, что поле1 не может быть разрешено переменной...

Теги:

3 ответа

1
Лучший ответ

установите поле1 в глобальный класс следующим образом:

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);
}
  • 0
    Спасибо! Вы мне очень помогли :)
0
ImageView field1;    

Установите ImageView поверх метода onCreate, поскольку он может использоваться всем вашим классом

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

В любом случае, вы должны, вероятно, прочитать учебник по коду, чтобы изучить основы кодирования.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню