private final Button[] BUTTONS = {
btn1, btn2, btn3,btn4
};
...
btn1 = (Button) this.findViewById(R.id.btn_1);
btn2 = (Button) this.findViewById(R.id.btn_2);
btn3 = (Button) this.findViewById(R.id.btn_3);
btn4 = (Button) this.findViewById(R.id.btn_4);
...
int n = BUTTONS.length;
for(int i=0; i<n; i++) {
if(DEBUG) Log.d(TAG, String.valueOf(i));
BUTTONS[i].setOnClickListener(this);
}
が正常に動作しますsetOnClickListenerはforループ内でのみNullPointerExceptionをスローします。どうして?
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
のに対し、NullPointerExceptionがスローされます。私には分かりません。
btn1を4回使用しました。おそらく、btn2,3、または4が存在しない可能性があります(つまり、findViewByIdがnullを返します)。 Btw、なぜ私は1で始まるのですか?なぜ0でないのですか? – EboMike
申し訳ありませんが、私は実験していました。私は今コードを修正しました。 –