ボタンの配列の属性を変更しようとしていますが、いくつかの非常に奇妙なエラーが発生しています。私はボタンをループして、それぞれの高さ属性を編集しようとしていますが、forループ(i = 0; i < 3; i ++)を設定すると、buttonSkater [i] .setHeight(buttonHeight);結果は9つのボタンが変更されているようです!そして私が(14個のボタンがある)を設定すると、アプリケーションはNullPointerExceptionでクラッシュします。Android用Javaの非常に奇妙なforループのバグ?
package com.rollerderby.lineuptracker;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.Button;
public class Setup extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.setup);
Button[] buttonSkater = new Button[14];
buttonSkater[0] = (Button) findViewById(R.id.buttonSkater1);
buttonSkater[1] = (Button) findViewById(R.id.buttonSkater2);
buttonSkater[2] = (Button) findViewById(R.id.buttonSkater3);
int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
int buttonHeight = (screenHeight-60)/14;
for(int i=0; i<14; i++)
{
buttonSkater[i].setHeight(buttonHeight);
}
}
}
これは非常に奇妙なエラーのようです...私は何か明白なものを紛失していますか?
(新しいボタンのためのスペースでそれを作成することによって、誤った配列のサイズ?)
デバッガを使用して、ループで実行されたアクションを実行します。上記のコードが、特にNPEを投げる理由を知っていますよね? –