Android ListView选中Item高亮

/**
 * Music列表 Adapter类
 * Created by Lezg on 2014/6/7.
 */
public class ListViewMusicAdapter extends BaseAdapter {

    private int selectedItem = -1;
    private Context mContext;
    private ArrayList<Mp3Info> listItems;

    static class ListViewItem {
        public TextView musicName;
        public TextView musicArtist;
        public TextView musicDuration;
        public ViewGroup deleteHolder;
    }

    public ListViewMusicAdapter(Context context, ArrayList<Mp3Info> data) {
        this.listItems = data;
        this.mContext = context;
    }

    public void setSelectedItem(int position){
        selectedItem = position;
        notifyDataSetChanged();
    }

    @Override
    public int getCount() {
        return listItems.size();
    }

    @Override
    public Object getItem(int position) {
        return listItems.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @SuppressWarnings("ConstantConditions")
    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        ListViewItem listViewItem;
        SlideView slideView = (SlideView) convertView;
        if (slideView == null) {
            View itemView = LayoutInflater.from(mContext).inflate(R.layout.listview_item, null);
            slideView = new SlideView(mContext);
            slideView.setContentView(itemView);
            listViewItem = new ListViewItem();
            listViewItem.musicName = (TextView) slideView.findViewById(R.id.music_name);
            listViewItem.musicArtist = (TextView) slideView.findViewById(R.id.music_artist);
            listViewItem.musicDuration = (TextView) slideView.findViewById(R.id.music_duration);
            listViewItem.deleteHolder = (ViewGroup) slideView.findViewById(R.id.rl_holder);
            slideView.setOnSlideListener((Main) mContext);
            slideView.setTag(listViewItem);
        } else {
            listViewItem = (ListViewItem) slideView.getTag();
        }

        final Mp3Info mp3Info = listItems.get(position);
        mp3Info.slideView = slideView;
        mp3Info.slideView.shrink();

        listViewItem.musicName.setText(String.valueOf((position + 1)) + "." + mp3Info.getName());
        listViewItem.musicArtist.setText(mp3Info.getArtist());
        listViewItem.musicDuration.setText(AppHelper.formatTime(mp3Info.getDuration()));
        listViewItem.deleteHolder.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                listItems.remove(position);
                notifyDataSetChanged();
                AppHelper.deleteMusicFromSDCard(mContext, mp3Info.getUrl(), mp3Info.getId());
            }
        });
        if(selectedItem == position){
            slideView.setBackgroundColor(Color.parseColor("#40aaaaaa"));
        }else {
            slideView.setBackgroundColor(Color.TRANSPARENT);
        }
        return slideView;
    }

}



lvMusic.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
                listPosition = position;
                lvMusicAdapter.setSelectedItem(position);
                playMusic(position, AppHelper.MODE_PLAY);
            }
        });


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值