Получить разные элементы в GridView

Я читаю значения из файла .txt и помещаю их в GridView с помощью ArrayAdapter, и он отлично работает. Но я хочу изменить цвет элемента в зависимости от значения элемента.

Например: 1 серый 2 красный 3 синий 4 ...

Но я не могу изменить backgroundColor одного элемента в GridView, только весь GV.

GridView gv = (GridView) findViewById(R.id.gvSpeelveld);
gv.setBackgroundColor(Color.GREEN);

Эта попытка не увенчалась успехом

//View is null
View v = gv.getChildAt(2);
v.setBackgroundColor(Color.CYAN);

Но как я могу получить разные элементы одного gridView? Цикл for был бы очень полезен.

Просмотреть приложение


person Matt    schedule 26.01.2014    source источник
comment
Вы должны установить фон для отдельного элемента в методе getView() адаптера...   -  person Gopal Gopi    schedule 26.01.2014


Ответы (1)


В вашем методе getView(int position, View view, ViewGroup parent) адаптера получите значение элемента в заданной позиции (используя параметр position). Затем используйте что-то вроде переключателя и установите цвет фона для этого элемента сетки.

Что-то вроде этого.

//скажем, вы получаете значение элемента в методе getView...

switch(value){

case 1:
   view.setBackgroundColor(Color.GRAY); //grey
   break;
case 2:
   view.setBackgroundColor(Color.RED); //red
   break;
}

//so on
person droidx    schedule 26.01.2014