Цвет строки в зависимости от содержимого в ListView моего устройства чтения RSS - PullRequest
0 голосов
/ 04 марта 2011

Я очень новичок в Android, и я создал простое приложение для чтения RSS, основанное на бесплатном руководстве IBM по Android для RSS. Я хотел бы изменить цвет фона каждой строки, если категория этой строки равна определенной строке.

Я написал следующий "цикл for", который обнаруживает категорию каждого элемента и выполняет оператор if, если эта категория равна "News". В настоящий момент цвет фона всего списка меняется, как только канал получает категорию новостей.

Кто-нибудь хочет помочь начинающему?

for(int i = 0; i < feed.getItemCount(); i++)
{
    if (feed.getItem(i).getCategory().equals("News"))
    {
       ListView.setBackgroundColor(0x77ee0044);
    }
}

1 Ответ

0 голосов
/ 04 марта 2011

Вам нужно будет сделать это в методе getView() вашего адаптера.

Перед возвратом представления в getView () вы можете вызвать setBackgroundColor () для представления или использовать один из других setBackgroundFoo() методов.

Редактировать - учитывая ваш код, при создании адаптера попробуйте:

ArrayAdapter<RSSItem> adapter = new ArrayAdapter<RSSItem>(
  this,android.R.layout.simple_list_item_1,feed.getAllItems(­)) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        if (getItem(position).getCategory().equals("News")) {
            view.setBackgroundColor(0xffff0000); // red
        }
        return view;
    }
};

Это переопределяет getView () для правильной настройки фона представлений элементов списка.

...