/** * */ package com.photoshare.service.news.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 android.widget.ListView; import com.photoshare.service.news.NewsBean; import com.photoshare.service.photos.PhotoBean; import com.photoshare.service.users.UserInfo; import com.photoshare.tabHost.R; import com.photoshare.utils.async.AsyncUtils; /** * @author czj_yy * */ public class NewsView { private ArrayList<NewsBean> newsList; private ListView mNewsListView; private View baseView; private Context context; private AsyncUtils async; /** * @param newsList * @param baseView * @param context * @param async */ public NewsView(ArrayList<NewsBean> newsList, View baseView, Context context, AsyncUtils async) { super(); this.newsList = newsList; this.baseView = baseView; this.context = context; this.async = async; } public void applyView() { mNewsListView = (ListView) baseView.findViewById(R.id.newsListView); NewsAdapter adapter = new NewsAdapter(); mNewsListView.setAdapter(adapter); } private class NewsAdapter extends ArrayAdapter<NewsBean> { /** * @param context * @param textViewResourceId */ public NewsAdapter() { super(context, 0, newsList); } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View rowView = convertView; if (rowView == null) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); rowView = inflater.inflate(R.layout.simple_grid_item, null); } else { } NewsBean news = getItem(position); NewsItemView item = new NewsItemView(news, rowView, async, context); item.registerCallback(mCallback); item.applyView(); return rowView; } } private NewsItemView.ICallback mCallback = new NewsItemView.ICallback() { public void OnNewsImageClick(PhotoBean photo) { // TODO Auto-generated method stub if (onNewsClickListener != null) { onNewsClickListener.OnNewsImageClick(photo); } } public void OnNameClick(UserInfo info) { // TODO Auto-generated method stub if (onNewsClickListener != null) { onNewsClickListener.OnNameClick(info); } } public void OnUserHeadLoaded(ImageView image, Drawable drawable, String url) { if (onNewsClickListener != null) { onNewsClickListener.OnUserHeadLoaded(image, drawable, url); } } public void OnImageDefaule(ImageView image) { if (onNewsClickListener != null) { onNewsClickListener.OnImageDefault(image); } } }; private OnNewsClickListener onNewsClickListener; public void registerNewsClickListener(OnNewsClickListener clickListener) { this.onNewsClickListener = clickListener; } public interface OnNewsClickListener { public void OnNewsImageClick(PhotoBean photo); public void OnNameClick(UserInfo info); public void OnUserHeadLoaded(ImageView image, Drawable drawable, String url); public void OnImageDefault(ImageView image); } }