Страница 1 из 1

Модификация одного элемента ListView

Добавлено: 08 мар 2015, 09:28
roop1e
Всем привет. Возник следующий вопрос. Есть ListView с кастомным адаптером ArrayAdapter<Object>. Список представляет собой плейлист музыкального плеера. Нужно сделать так, чтобы при нажатии на элемент списка нажатый элемент перерисовывался.(например, шрифт становился жирным, а перед текстом появляась картинка gif).
Пытался сделать проверку в getview, но безуспешно. В интернете очень мало информации по этому вопросу.

Код: Выделить всё

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import java.util.ArrayList;

import ru.belsci.vkSdk.Song;

public class ListSongsAdapter extends ArrayAdapter<Song> {

    ViewHolder viewHolder;

    public ListSongsAdapter(Context context, ArrayList<Song> songs) {
        super(context, R.layout.list_audio, songs);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Song song = getItem(position);
        if(convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_audio, parent, false);

            viewHolder = new ViewHolder();
            viewHolder.art = (TextView) convertView.findViewById(R.id.listArtist);
            viewHolder.tit = (TextView) convertView.findViewById(R.id.listTitle);

            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }

        viewHolder.art.setText(song.Artist);
        viewHolder.tit.setText(song.Title);

        return convertView;
    }

    private static class ViewHolder {
        TextView art;
        TextView tit;
    }
}