Mam GridView z każdą komórką zawierającą tekst i chcę mieć możliwość ustawienia koloru tła poszczególnych komórek.Jak ustawić kolor tła poszczególnych komórek widoku siatki
XML dla mojego GridView jest:
<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>
Kod dla mojego GridView jest:
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);
Miałem nadzieję, że będę mógł ustawić kolor tła poszczególnych komórek przy użyciu:
gridView.getChildAt(random_student).setBackgroundColor(Color.parseColor("#18A608"));
Jednak powoduje to wyjątek wskaźnika pustego, a po dokładniejszym zbadaniu wydaje się, że gridv iew.getChildCount() zwraca 0. Widziałem, że gridview.getCount poprawnie zwraca liczbę elementów w widoku siatki, ale to nie pomaga mi ustawić koloru tła poszczególnych komórek.
Jakieś pomysły, gdzie pójdę dalej?
Dzięki. Działa to w celu zainicjowania wszystkich komórek podczas tworzenia ekranu. Ale muszę też dynamicznie uzyskiwać dostęp i zmieniać komórki. Czy istnieje sposób na odwołanie się do poszczególnych komórek w czasie wykonywania w celu zmiany ich koloru? –
(Przepraszam, właśnie znalazłem twoją odpowiedź.) Tak, ale czy chcesz podświetlić tylko jedną komórkę lub każdą komórkę, która pasuje do kryteriów (jak co trzecia komórka lub każdy uczeń, który się nie sprawdza)? – Sam
@Mark__C tak, przesłonić BaseAdapter zgodnie z sugestią w SDK. – dcow