package tk.djcrazy.MyCC98.adapter; import java.util.List; import tk.djcrazy.MyCC98.PostContentsJSActivity; import tk.djcrazy.MyCC98.R; import tk.djcrazy.libCC98.data.PostEntity; import tk.djcrazy.libCC98.data.PostType; import tk.djcrazy.libCC98.util.DateFormatUtil; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.text.Html; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.google.inject.Inject; public class PostListViewAdapter extends BaseItemListAdapter<PostEntity> { private final class ListItemView { public TextView postName; public LinearLayout postNameClickable; public TextView postAuthor; public TextView lastReplyAuthor; public TextView lastReplyTime; public View postLastReplyClickable; public TextView replyNum; } public PostListViewAdapter(Activity context, List<PostEntity> postList, String boardId, String boardName) { super(context, postList); } @Override public View getView(int position, View convertView, ViewGroup parent) { PostEntity entity = items.get(position); final int clickPosition = position; ListItemView listItemView = null; if (convertView == null) { listItemView = new ListItemView(); // 获取布局文件视图 convertView = inflater.inflate(R.layout.post_list_item, null); getPostListView(convertView, listItemView); convertView.setTag(listItemView); } else { listItemView = (ListItemView) convertView.getTag(); } if (listItemView==null) { Log.e("listItemView", "null!!!"); throw new NullPointerException(""); } listItemView.postName.setText( entity.getPostName( )); listItemView.postAuthor.setText(entity.getPostAuthorName()); listItemView.lastReplyAuthor.setText(entity.getLastReplyAuthor()); listItemView.lastReplyTime.setText(DateFormatUtil.convertDateToString( entity.getLastReplyTime(), true)); listItemView.replyNum.setText(entity.getReplyNumber()); setListItemViewListener(clickPosition, listItemView); String postType = items.get(position).getPostType(); // 给不同类型的帖子给予不同的颜色的标题 if (postType.equals(PostType.Z_TOP)) { // 总固顶,红色 listItemView.postName.setTextColor(Color.rgb(220, 20, 60)); } else if (postType.equals(PostType.TOP_B)) { // 普通固顶,橙色 listItemView.postName.setTextColor(Color.rgb(255, 140, 0)); } else if (postType.equals(PostType.TOP)) { // 区固顶,暗橙色 listItemView.postName.setTextColor(Color.rgb(222, 184, 135)); } else if (postType.equals(PostType.FOLDER)) { // 普通贴, listItemView.postName.setTextColor(Color.rgb(117, 137, 158)); } else if (postType.equals(PostType.CLOSED_B)) { // 投票贴 listItemView.postName.setTextColor(Color.rgb(100, 149, 237)); } else if (postType.equals(PostType.FOLDER_RED)) { // 你发布的帖子 listItemView.postName.setTextColor(Color.rgb(255, 105, 180)); } else if (postType.equals(PostType.FOLDER_SAVE)) { // 保存贴 listItemView.postName.setTextColor(Color.rgb(0, 0, 139)); } else if (postType.equals(PostType.IS_BEST)) { // 精华帖 listItemView.postName.setTextColor(Color.rgb(148, 20, 211)); } else if (postType.equals(PostType.LOCK_FOLDER)) { // 锁定 listItemView.postName.setTextColor(Color.rgb(128, 128, 128)); } else if (postType.equals(PostType.HOT_FOLDER)) { // 热门贴,大红色 listItemView.postName.setTextColor(Color.rgb(255, 0, 0)); } return convertView; } private void setListItemViewListener(final int clickPosition, final ListItemView listItemView) { listItemView.postNameClickable.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { context.startActivity(PostContentsJSActivity.createIntent(items .get(clickPosition).getBoardId(), items.get(clickPosition).getPostId(), 1, false)); } }); listItemView.postLastReplyClickable .setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { context.startActivity(PostContentsJSActivity.createIntent(items .get(clickPosition).getBoardId(), items.get(clickPosition).getPostId(), 32767, false)); } }); } /** * @param convertView * @param listItemView */ private void getPostListView(View convertView, ListItemView listItemView) { listItemView.postName = (TextView) convertView .findViewById(R.id.post_title); listItemView.postAuthor = (TextView) convertView .findViewById(R.id.post_author); listItemView.lastReplyAuthor = (TextView) convertView .findViewById(R.id.post_last_reply_author); listItemView.lastReplyTime = (TextView) convertView .findViewById(R.id.post_last_reply_time); listItemView.postLastReplyClickable = convertView .findViewById(R.id.post_last_reply_clickable); listItemView.replyNum = (TextView) convertView .findViewById(R.id.post_list_reply_num); listItemView.postNameClickable = (LinearLayout) convertView .findViewById(R.id.post_title_clickable); } }