I have the following code:
public class Klasse {
TextView[] tvAuftrag = new TextView[5];
ImageView[] ivStatus = new ImageView[5];
CardView[] cvAuftrag = new CardView[5];
private void initialize() {
tvAuftrag[0] = findViewById(R.id.tvAuftrag1);
tvAuftrag[1] = findViewById(R.id.tvAuftrag2);
tvAuftrag[2] = findViewById(R.id.tvAuftrag3);
tvAuftrag[3] = findViewById(R.id.tvAuftrag4);
tvAuftrag[4] = findViewById(R.id.tvAuftrag5);
ivStatus[0] = findViewById(R.id.ivStatus1);
ivStatus[1] = findViewById(R.id.ivStatus2);
ivStatus[2] = findViewById(R.id.ivStatus3);
ivStatus[3] = findViewById(R.id.ivStatus4);
ivStatus[4] = findViewById(R.id.ivStatus5);
cvAuftrag[0] = findViewById(R.id.cvAuftrag1);
cvAuftrag[1] = findViewById(R.id.cvAuftrag2);
cvAuftrag[2] = findViewById(R.id.cvAuftrag3);
cvAuftrag[3] = findViewById(R.id.cvAuftrag4);
cvAuftrag[4] = findViewById(R.id.cvAuftrag5);
}
}
Is there a better solution to initialize the Views into an array? I tried an ArrayList like:
public class Klasse {
List<TextView> tvAuftrag = ArrayList<>();
private void initialize() {
tvAuftrag.add(findViewById(R.id.tvAuftrag1));
tvAuftrag.add(findViewById(R.id.tvAuftrag2));
tvAuftrag.add(findViewById(R.id.tvAuftrag3));
tvAuftrag.add(findViewById(R.id.tvAuftrag4));
tvAuftrag.add(findViewById(R.id.tvAuftrag5));
}
}
Maybe this could be a little bit better then the above solution but it does not work. Or is it even possible to work with a loop? Then the IDs must me iterable i think but how could this be possible? Any help or new information to learn about would be highly appreciated.