package com.itap.voiceemoticon.adapter; import android.app.Activity; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ListView; import android.widget.SectionIndexer; import android.widget.TextView; import com.itap.voiceemoticon.R; import com.itap.voiceemoticon.VEApplication; import com.itap.voiceemoticon.activity.MainActivity; import com.itap.voiceemoticon.api.Voice; import com.itap.voiceemoticon.widget.WeixinAlert; import org.tadpoleframework.widget.adapter.BaseListAdapter; /** * usage。 <br>= * ========================= <br> * author:Zenip <br> * email:lxyczh@gmail.com <br> * create:2013-1-31上午9:33:58 <br>= * ========================= */ public class VoiceAdapter extends BaseListAdapter<Voice, ListView> implements OnClickListener { public static final int CMD_SHARE = 1; public static final int CMD_COLLECT = 2; public static final int CMD_DELETE = 3; public VoiceAdapter(Activity context) { super(context); } @Override public View getView(final int position, View convertView, ViewGroup parent) { Voice item = (Voice)getItem(position); View view = convertView; ViewHolder viewHolder = null; if (view == null) { view = getLayoutInflater().inflate(R.layout.list_item_hot_voice, null); viewHolder = new ViewHolder(); viewHolder.textViewTitle = (TextView)view.findViewById(R.id.text_view_title); viewHolder.textViewTags = (TextView)view.findViewById(R.id.text_view_tags); viewHolder.btnShare = view.findViewById(R.id.btn_share); viewHolder.btnCollect = (ImageButton)view.findViewById(R.id.btn_collect); view.setTag(viewHolder); } else { viewHolder = (ViewHolder)convertView.getTag(); } viewHolder.textViewTitle.setText(item.title); viewHolder.textViewTags.setText(item.tags); if (VEApplication.isCollected(mContext, item.url)) { viewHolder.btnCollect.setImageResource(R.drawable.btn_hasfavorite_default); } else { viewHolder.btnCollect.setImageResource(R.drawable.btn_favorite_default); } viewHolder.btnShare.setTag(position); viewHolder.btnShare.setOnClickListener(this); final ImageButton finalBtnCollect = viewHolder.btnCollect; viewHolder.btnCollect.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mList.get(position).saveToCollect(v.getContext()); VEApplication.reloadVoiceCollectedCache(mContext); finalBtnCollect.setImageResource(R.drawable.btn_hasfavorite_default); MainActivity mainActivity = (MainActivity)mContext; if (mainActivity.myCollectVoiceFragment != null) { mainActivity.myCollectVoiceFragment.reloadData(); } } }); view.setBackgroundResource(R.drawable.wb_retweet_bg); return view; } /** * Class implementing holder pattern, performance boost * * @author Zenip */ static class ViewHolder { TextView textViewTitle; TextView textViewTags; View btnShare; ImageButton btnCollect; } @Override public void onClick(View v) { if(v.getTag() == null) { return; } int position = (Integer)v.getTag(); Voice data = getItemData(position); switch (v.getId()) { case R.id.btn_share: callback(v, getItemData(position), CMD_SHARE, position); break; case R.id.btn_collect: callback(v, getItemData(position), CMD_COLLECT, position); break; default: break; } } }