package cheng.app.cnbeta; import com.squareup.picasso.Picasso; import cheng.app.cnbeta.data.CBContract.HmColumns; import cheng.app.cnbeta.data.CBContract.NewsColumns; import cheng.app.cnbeta.util.HttpUtil; import cheng.app.cnbeta.util.TimeUtil; import cheng.app.cnbeta.util.Utils; import android.content.Context; import android.database.Cursor; import android.support.v4.widget.CursorAdapter; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; public class PageListAdapter extends CursorAdapter { private int mPageId; private static int mTextSize = Integer.parseInt(Utils.PREFERENCE_FONT_SIZE_DEFAULT); public PageListAdapter(Context context, int pageId) { super(context, null, 0); mPageId = pageId; } public void setFontSize(int fontSize) { if (mTextSize != fontSize) { mTextSize = fontSize; notifyDataSetChanged(); } } @Override public void bindView(View arg0, Context arg1, Cursor arg2) { if (mPageId == PageListFragment.PAGE_HM) bindHMView(arg0, arg1, arg2); else bindNewsListView(arg0, arg1, arg2); } private void bindHMView(View arg0, Context arg1, Cursor arg2) { final String hm = arg2.getString(arg2.getColumnIndex(HmColumns.COMMENT)); //final String name = arg2.getString(arg2.getColumnIndex(HmColumns.NAME)); final String title = arg2.getString(arg2.getColumnIndex(HmColumns.TITLE)); final TextView hmView = (TextView) arg0.findViewById(R.id.page_list_hm); final TextView titleView = (TextView) arg0.findViewById(R.id.page_list_hm_title); hmView.setText(hm); hmView.setTextSize(mTextSize); titleView.setText(title); } private void bindNewsListView(View arg0, Context arg1, Cursor arg2) { NewsViewHolder holder = null; Object tag = arg0.getTag(); if (tag instanceof NewsViewHolder) { holder = (NewsViewHolder) tag; } if (holder == null) { holder = new NewsViewHolder(); arg0.setTag(holder); holder.title = (TextView) arg0.findViewById(R.id.page_list_title); holder.time = (TextView) arg0.findViewById(R.id.page_list_time); holder.comment = (TextView) arg0.findViewById(R.id.page_list_comment); holder.text = (TextView) arg0.findViewById(R.id.page_list_text); holder.icon = (ImageView) arg0.findViewById(R.id.page_list_image); } final String title = arg2.getString(arg2.getColumnIndex(NewsColumns.TITLE)); final String time = arg2.getString(arg2.getColumnIndex(NewsColumns.PUBTIME)); final int cmtClosed = arg2.getInt(arg2.getColumnIndex(NewsColumns.CMT_CLOSED)); final int cmtNumber = arg2.getInt(arg2.getColumnIndex(NewsColumns.CMT_NUMBER)); final String logo = arg2.getString(arg2.getColumnIndex(NewsColumns.TOPIC_LOGO)); final String text = HttpUtil.unescape(arg2.getString(arg2.getColumnIndex(NewsColumns.SUMMARY))); holder.title.setText(title); holder.time.setText(TimeUtil.formatTime(mContext, time)); if (cmtClosed == 0) { holder.comment.setText(mContext.getString(R.string.cmt_number, cmtNumber)); } else { holder.comment.setText(R.string.cmt_closed); } holder.text.setText(Html.fromHtml(text)); holder.text.setTextSize(mTextSize); Picasso.with(mContext).load(logo).fit().placeholder(R.drawable.ic_launcher) .into(holder.icon); } @Override public View newView(Context arg0, Cursor arg1, ViewGroup arg2) { if (mPageId == PageListFragment.PAGE_HM) { return LayoutInflater.from(arg0).inflate(R.layout.page_list_item_hm, arg2, false); } else { return LayoutInflater.from(arg0).inflate(R.layout.page_list_item, arg2, false); } } static class NewsViewHolder { TextView title; TextView time; TextView comment; TextView text; ImageView icon; } }