package net.coding.program.maopao.item; import android.text.Html; import android.view.View; import android.widget.TextView; import net.coding.program.R; import net.coding.program.common.Global; import net.coding.program.model.Maopao; import java.util.ArrayList; /** * Created by chaochen on 14-9-19. */ public class CommentArea { private static final int[] commentIds = new int[]{ R.id.comment0, R.id.comment1, R.id.comment2, R.id.comment3, R.id.comment4 }; private View commentMore; private Html.ImageGetter imageGetter; private TextView commentMoreCount; private View commentLayout; private CommentItem comment[]; private static final int commentMaxCount = commentIds.length; public CommentArea(View convertView, View.OnClickListener onClickComment, Html.ImageGetter imageGetterParamer) { imageGetter = imageGetterParamer; commentLayout = convertView.findViewById(R.id.commentArea); commentMore = convertView.findViewById(R.id.commentMore); commentMoreCount = (TextView) convertView.findViewById(R.id.commentMoreCount); comment = new CommentItem[commentIds.length]; for (int i = 0; i < commentIds.length; ++i) { comment[i] = new CommentItem(convertView.findViewById(commentIds[i]), onClickComment, i); } } public void displayContentData(Maopao.MaopaoObject data) { ArrayList<Maopao.Comment> commentsData = data.comment_list; if (commentsData.isEmpty()) { commentLayout.setVisibility(View.GONE); } else { commentLayout.setVisibility(View.VISIBLE); int displayCount = Math.min(commentMaxCount, data.comment_list.size()); int i = 0; for (; i < displayCount; ++i) { CommentItem item = comment[i]; item.setVisibility(View.VISIBLE); Maopao.Comment comment = commentsData.get(i); item.setContent(comment, imageGetter, Global.tagHandler); } for (; i < commentMaxCount; ++i) { comment[i].setVisibility(View.GONE); } if ((data.comments > commentMaxCount) || (data.comments > data.comment_list.size())) { commentMore.setVisibility(View.VISIBLE); commentMoreCount.setText(String.format("查看全部%d条评论", data.comments)); } else { commentMore.setVisibility(View.GONE); } } } }