Ich habe eine GridView mit jeder Zelle, die etwas Text enthält, und ich möchte in der Lage sein, die Hintergrundfarbe einzelner Zellen zu setzen.So stellen Sie die Hintergrundfarbe einzelner Zellen ein
Die XML für meine Gridview ist:
<GridView android:id="@+id/students_grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="6"
android:gravity="center"
android:stretchMode="columnWidth">
</GridView>
Der Code für meine Gridview ist:
GridView gridView = (GridView) findViewById(R.id.students_grid);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, student_array);
gridView.setAdapter(adapter);
ich gehofft hatte ich die Hintergrundfarbe der einzelnen Zellen einzustellen, wäre in der Lage verwenden:
gridView.getChildAt(random_student).setBackgroundColor(Color.parseColor("#18A608"));
Allerdings löst dies eine Nullzeiger-Ausnahme aus, und bei weiterer Überprüfung scheint es, dass Gridv iiew.getChildCount() gibt 0 zurück. Ich habe gesehen, dass gridview.getCount die Anzahl der Elemente in der Gridview korrekt zurückgibt, aber das hilft mir nicht, die Hintergrundfarbe einzelner Zellen festzulegen.
Irgendwelche Ideen, wo ich als nächstes gehe?
Danke. Das funktioniert beim Initialisieren aller Zellen, wenn der Bildschirm erstellt wird. Aber ich muss auch auf Zellen zugreifen und dynamisch ändern. Gibt es eine Möglichkeit, einzelne Zellen zur Laufzeit zu referenzieren, um ihre Farbe zu ändern? –
(Entschuldigung, ich habe gerade Ihre Antwort gefunden.) Ja, aber möchten Sie nur eine Zelle oder jede Zelle hervorheben, die einem Kriterium entspricht (wie jede dritte Zelle oder jeder Schüler, der versagt)? – Sam
@Mark__C Ja, überschreiben Sie BaseAdapter wie im SDK vorgeschlagen. – dcow