2016-01-18 3 views
-3

Сделать массив, как не приводится ниже, как не из элемента списка я полагаю и есть пять пунктов:Как возможно 5 разных цветов каждой строки в списке, если в Android больше элементов в списке?

int[] color_arr={Color.BLUE,Color.CYAN,Color.YELLOW,Color.GREEN,Color.RED}; 

и использовать его в getView() методе пользовательского адаптера, как показано ниже: -

public View getView(int position, View convertView, ViewGroup parent) 
    { 

    LayoutInflater inflater = getLayoutInflater(); 
    View row=convertView; 

    row = inflater.inflate(R.layout.listview_custome, parent, false); 
    row.setBackgroundColor(color_arr[position]);// this set background color 

    TextView textview = (TextView) row.findViewById(R.id.tv_list); 
    ImageView imageview = (ImageView) row.findViewById(R.id.iv_list); 

    textview.setText(data_text[position]); 
    imageview.setImageResource(data_image[position]); 

    return (row); 

    } 

Мой вопрос если более 5 элементов в элементе списка, как это возможно, 5 разных цветов каждой строки в списке?

+1

Да это должно быть возможно. В чем проблема с вашим кодом? – Gavriel

+0

set variable в globle int count = 0; Изменить эту строку row.setBackgroundColor (color_arr [count]); // этот набор цвет фона if (count> = 5) { \t count = 0; } кол-во ++; – Saif

+0

Этот код работает нормально, если в ListView доступно 5 элементов, если доступно более 5 элементов, тогда как он устанавливает 5 цветов фона в listView? –

ответ

3
row.setBackgroundColor(color_arr[position % color_arr.length]); 
6

у Вас есть 5 значений в массиве, так что если список имеющих более чем на 5 пунктов, безусловно, это приведет к краху, потому что он не может найти data_image[5]

Вы можете использовать % оператор

imageview.setBackgroundColor(data_image[position % 5]); 

Для 0 -4-я позиция будет работать в настоящее время, для 5-й позиции он установит цвет позиции 0, для 6-го положения он установит цвет положения 1 и т. Д.

1

Попробуйте это,

row.setBackgroundColor(color_arr[position % color_arr.length]); 
Смежные вопросы