Guten Abend,
ich arbeite hier mit Android Studio (Android 12) und möchte einer ListView zur Laufzeit Einträge (Hex-Farbwerte) hinzufügen und zu jeden Eintrag soll der Hintergrund in der jeweiligen Farbe erscheinen.
Aktuell stürzt die App an dieser Stelle ab, weil das entsprechende Child-Element (View) nach der Adapter-Aktualisierung zur Laufzeit null ist/wird:
Wenn aber vorher (im onCreate) das String-Array (colorList) befüllt ist und zur Laufzeit nur das setBackgroundColor aufgerufen wird, funktioniert das Einfärben, nur habe ich nichts davon, denn ich möchte zur Laufzeit die ListView mit neuen Einträgen füllen und färben.
Wisst ihr, wie das richtig geht?
ich arbeite hier mit Android Studio (Android 12) und möchte einer ListView zur Laufzeit Einträge (Hex-Farbwerte) hinzufügen und zu jeden Eintrag soll der Hintergrund in der jeweiligen Farbe erscheinen.
Aktuell stürzt die App an dieser Stelle ab, weil das entsprechende Child-Element (View) nach der Adapter-Aktualisierung zur Laufzeit null ist/wird:
Code:
public class MainActivity extends AppCompatActivity {
ArrayList<String> _colorList = new ArrayList<>();
ArrayAdapter<String> _listViewAdapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
_listViewAdapter = new ArrayAdapter<>(getApplicationContext(), android.R.layout.simple_list_item_1, _colorList);
}
public void onButtonClick(View view) {
_colorList.add("#FF0000");
_listView.setAdapter(_listViewAdapter);
_listView.getChildAt(0).setBackgroundColor(Color.parseColor(_colorList.get(0))); // _listView.getChildAt(0) ist null und App stürzt ab
}
}
Wenn aber vorher (im onCreate) das String-Array (colorList) befüllt ist und zur Laufzeit nur das setBackgroundColor aufgerufen wird, funktioniert das Einfärben, nur habe ich nichts davon, denn ich möchte zur Laufzeit die ListView mit neuen Einträgen füllen und färben.
Wisst ihr, wie das richtig geht?