package com.marshalchen.ultimaterecyclerview.demo.rvComponents; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.marshalchen.ultimaterecyclerview.UltimateRecyclerviewViewHolder; import com.marshalchen.ultimaterecyclerview.demo.R; import com.marshalchen.ultimaterecyclerview.quickAdapter.easyRegularAdapter; import java.security.SecureRandom; import java.util.List; /** * Created by hesk on 16/2/16. */ public class sectionCommonAdapter extends easyRegularAdapter<String, itemCommonBinder> { /** * dynamic object to start * * @param list the list source */ public sectionCommonAdapter(List<String> list) { super(list); } /** * the layout id for the normal data * * @return the ID */ @Override protected int getNormalLayoutResId() { return itemCommonBinder.layout; } @Override protected itemCommonBinder newViewHolder(View view) { return new itemCommonBinder(view, true); } private void setRandomImage(ImageView image) { SecureRandom imgGen = new SecureRandom(); switch (imgGen.nextInt(3)) { case 0: image.setImageResource(R.drawable.scn1); break; case 1: image.setImageResource(R.drawable.jr13); break; case 2: image.setImageResource(R.drawable.jr16); break; } } @Override protected void withBindHolder(itemCommonBinder holder, String data, int position) { char Firstletter = data.charAt(0); holder.textViewSample.setText(data); holder.item_view.setBackgroundColor(Color.parseColor("#AAffffff")); setRandomImage(holder.imageViewSample); /* if (position < getItemCount() && (hasHeaderView() ? position <= getAdapterItemCount() : position < getAdapterItemCount()) && (hasHeaderView() ? position > 0 : true)) { holder.textViewSample.setText(getItem(hasHeaderView() ? position - 1 : position)); if (mDragStartListener != null) { holder.item_view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { return false; } }); } }*/ } @Override public void onItemMove(int fromPosition, int toPosition) { swapPositions(fromPosition, toPosition); // notifyItemMoved(fromPosition, toPosition); super.onItemMove(fromPosition, toPosition); } @Override public void onItemDismiss(int position) { if (position > 0) removeAt(position); // notifyItemRemoved(position); // notifyDataSetChanged(); super.onItemDismiss(position); } public void setOnDragStartListener(OnStartDragListener dragStartListener) { mDragStartListener = dragStartListener; } /** * this is the way to enable section header * * @param i position in the display items * @return long position */ @Override public long generateHeaderId(int i) { if (getItem(i).length() > 0) { return getItem(i).charAt(0); } else return -1; } /** * this is the way to enable section header * * @param viewGroup enable the view group * @return view holder */ @Override public UltimateRecyclerviewViewHolder onCreateHeaderViewHolder(ViewGroup viewGroup) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.stick_header_item, viewGroup, false); return new UltimateRecyclerviewViewHolder(view) { }; } /** * this is the section header binding * * @param viewHolder section holder * @param position position */ @Override public void onBindHeaderViewHolder(RecyclerView.ViewHolder viewHolder, int position) { TextView textView = (TextView) viewHolder.itemView.findViewById(R.id.stick_text); textView.setText(String.valueOf(getItem(hasHeaderView() ? position - 1 : position).charAt(0))); // viewHolder.itemView.setBackgroundColor(Color.parseColor("#AA70DB93")); viewHolder.itemView.setBackgroundColor(Color.parseColor("#AAffffff")); ImageView imageView = (ImageView) viewHolder.itemView.findViewById(R.id.stick_img); SecureRandom imgGen = new SecureRandom(); switch (imgGen.nextInt(3)) { case 0: imageView.setImageResource(R.drawable.scn1); break; case 1: imageView.setImageResource(R.drawable.jr13); break; case 2: imageView.setImageResource(R.drawable.jr16); break; } } @Override public itemCommonBinder newFooterHolder(View view) { return new itemCommonBinder(view, false); } @Override public itemCommonBinder newHeaderHolder(View view) { return new itemCommonBinder(view, false); } }