ホーム>source

複数の ImageView を変更しようとしています配列に含まれるティントカラー。

すべて8 ImageViews block1、block2 ....からblock8のIDを持っている そして、私は findViewById でblock + iを使用しますループでそれらを参照します。

<前>ウィズウィズ

その後、 private ImageView arrowUp, arrowDown; private ImageView[] blocks = new ImageView[8]; private TextView result; private static final String TAG = "TEST"; private int jaugeValue = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); arrowDown = findViewById(R.id.arrowDown); arrowUp = findViewById(R.id.arrowUp); result = findViewById(R.id.result); for (int i = 0; i < 8; i++) { int res = getResources().getIdentifier("block"+i, "id", getPackageName()); blocks[i] = (ImageView) findViewById(res); } blocks[0].setColorFilter(Color.argb(255, 255, 255, 255)); arrowDown.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { jaugeValue--; changeTextValue(); } }); arrowUp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { jaugeValue++; changeTextValue(); } }); } private void changeTextValue(){ String displayValue = Integer.toString(jaugeValue); if(jaugeValue < 0) { jaugeValue = 0; displayValue = Integer.toString(jaugeValue); } else if(jaugeValue > 8) { jaugeValue = 8; displayValue = Integer.toString(jaugeValue); } result.setText(displayValue); } } の1つを設定してみます使用する色合い:

<前>ウィズウィズ

この時点で私はこのエラーを受け取ります:

<前>ウィズウィズ

これがnull参照を引き起こしている理由に関するアイデアはありますか?

私の配列が ImageView で満たされていることも確認できますログに印刷するとき。

blocks[0].setColorFilter(Color.argb(255, 255, 255, 255));
あなたの答え
  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ JBoss Wildfly Javaの互換性