/** * */ package com.photoshare.service.likes.view; import java.util.ArrayList; import android.content.Context; import android.graphics.drawable.Drawable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import com.photoshare.service.likes.LikeBean; import com.photoshare.service.users.UserInfo; import com.photoshare.tabHost.R; import com.photoshare.utils.async.AsyncUtils; import com.photoshare.view.listview.MyListView; /** * @author czj_yy * */ public class LikesView { private MyListView mLikesListView; private Context context; private View baseView; private ArrayList<LikeBean> beans; private AsyncUtils async; /** * @param context * @param baseView * @param beans * @param async */ public LikesView(Context context, View baseView, ArrayList<LikeBean> beans, AsyncUtils async) { super(); this.context = context; this.baseView = baseView; this.beans = beans; this.async = async; } public void applyView() { mLikesListView = (MyListView) baseView .findViewById(R.id.likesListView); LikesAdapter adapter = new LikesAdapter(); mLikesListView.setAdapter(adapter); } private class LikesAdapter extends ArrayAdapter<LikeBean> { /** * @param context * @param textViewResourceId * @param objects */ public LikesAdapter() { super(context, 0, beans); } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View rowView = convertView; LikeItemView likes; LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (rowView == null) { rowView = inflater.inflate(R.layout.feeds_layout, null); LikeBean feed = getItem(position); likes = new LikeItemView(rowView, async, feed); rowView.setTag(likes); } else { likes = (LikeItemView) rowView.getTag(); } likes.registerListener(listener); likes.applyView(); return rowView; } } private LikeItemView.OnLikeClickListener listener = new LikeItemView.OnLikeClickListener() { public void OnNameClick(UserInfo info) { if (mCallback != null) { mCallback.OnLikeNameClick(info); } } public void OnUserHeadLoaded(ImageView image, Drawable drawable, String url) { if (mCallback != null) { mCallback.OnUserHeadLoaded(image, drawable, url); } } public void OnImageDefaule(ImageView image) { if (mCallback != null) { mCallback.OnImageDefault(image); } } }; private ICallback mCallback; public void registerCallback(ICallback mCallback) { this.mCallback = mCallback; } public interface ICallback { public void OnLikeNameClick(UserInfo info); public void OnUserHeadLoaded(ImageView image, Drawable drawable, String url); public void OnImageDefault(ImageView image); } }