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 をクラスのグローバルに設定します。

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 に答える