package net.coding.program.project.detail.merge; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.SectionIndexer; import net.coding.program.R; import net.coding.program.common.comment.BaseCommentHolder; import net.coding.program.common.comment.BaseCommentParam; import net.coding.program.maopao.item.ImageCommentHolder; import net.coding.program.model.BaseComment; import net.coding.program.model.DiffFile; import se.emilsjolander.stickylistheaders.StickyListHeadersAdapter; /** * Created by chenchao on 15/6/3. * item可以为file或者comment */ public class CommitFileAdapter extends MergeFileAdapter implements StickyListHeadersAdapter, SectionIndexer { public static final int VIEW_TAG_FILE_DATA = R.layout.mergefile_list_item; BaseCommentParam mCommentParam; // private View.OnClickListener mClickFileItem; int mFilesCount = 0; public CommitFileAdapter(BaseCommentParam param) { super(); mCommentParam = param; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (getItemViewType(position) == 0) { View view = super.getView(position, convertView, parent); DiffFile.DiffSingleFile data = (DiffFile.DiffSingleFile) getItem(position); view.setTag(VIEW_TAG_FILE_DATA, data); return view; } else { BaseCommentHolder holder; if (convertView == null) { convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_task_comment_much_image, parent, false); holder = new ImageCommentHolder(convertView, mCommentParam); convertView.setTag(R.id.layout, holder); } else { holder = (BaseCommentHolder) convertView.getTag(R.id.layout); } BaseComment data = (BaseComment) getItem(position); holder.setContent(data); return convertView; } } @Override public int getItemViewType(int position) { Object object = getItem(position); if (object instanceof DiffFile.DiffSingleFile) { return 0; } else { // comment return 1; } } public int getViewTypeCount() { return 2; } @Override public Object[] getSections() { return new String[]{ "", "" }; } @Override public int getPositionForSection(int sectionIndex) { return 0; } @Override public int getSectionForPosition(int position) { return 0; } @Override public View getHeaderView(int i, View view, ViewGroup viewGroup) { if (view == null) { view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.divide_15_top_bottom, viewGroup, false); } return view; } public void setFilesCount(int count) { mFilesCount = count; } @Override public long getHeaderId(int i) { return i < mFilesCount ? 0 : 1; // return i; } }