Как установить цвет фона определенного элемента в списке по позиции?

Я хочу установить цвет фона для определенного элемента в списке.

Мое listview генерируется ArrayAdapter, используя ArrayList.

У меня есть определенный элемент в списке, который я планирую изменить цвет фона.

Я знаю позицию позиции в списке.

Это мой код для создания списка.

respondMessageListView = (ListView) findViewById(R.id.respondMessageListView); respondMessageListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoRespondMessages.getMessages())); 

Спасибо!

[редактировать]

В соответствии с этим сообщением использование setSelection не действует, если используется в onCreate (), работа вокруг – «удалить метод onAttachedToWindow в PullToRefreshListView ». Я не совсем понимаю решение. Могу ли я спросить, как мне это сделать? Я являюсь подклассом Activity , поэтому я больше не могу подклассифицировать какой-либо другой класс.

Вам придется подклассифицировать ArrayAdapter и переопределить метод getView (…) . Для простоты вы можете просто перейти к реализации базового класса и задать цвет фона для возвращаемого View .

Изменить: В следующем примере цвета фона элементов чередуются черно-белыми.

 private class MyAdapter extends ArrayAdapter { ... public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); v.setBackgroundColor(position % 2 == 0 : 0xff000000, 0xffffffff); } } 

Этот код предназначен для выбора списка.

Попробуйте этот код …

 listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> myAdapter, View myView, int pos, long mylng) { if( pos == 1) { // to change the listview background listview.setBackgroundColor(getResources().getColor(R.color.your_color_id)); // to change the selected item background color myView.setBackgroundColor(getResources().getColor(R.color.your_color_id)); } } }); 

Удачи.