package ren.solid.ganhuoio.module.mine; import android.support.annotation.NonNull; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import cn.bmob.v3.listener.DeleteListener; import me.drakeet.multitype.ItemViewProvider; import me.drakeet.multitype.MultiTypeAdapter; import ren.solid.ganhuoio.R; import ren.solid.ganhuoio.bean.bomb.CollectTable; import ren.solid.ganhuoio.utils.DialogUtils; import ren.solid.library.activity.WebViewActivity; import ren.solid.library.utils.DateUtils; import ren.solid.library.utils.SnackBarUtils; /** * Created by _SOLID * Date:2016/12/1 * Time:13:38 * Desc: */ public class CollectViewProvider extends ItemViewProvider<CollectTable, CollectViewProvider.ViewHolder> { private RecyclerView recyclerView; public CollectViewProvider(RecyclerView recyclerView) { this.recyclerView = recyclerView; } @NonNull @Override protected ViewHolder onCreateViewHolder( @NonNull LayoutInflater inflater, @NonNull ViewGroup parent) { View root = inflater.inflate(R.layout.item_collect, parent, false); return new ViewHolder(root); } @Override protected void onBindViewHolder( @NonNull final ViewHolder holder, @NonNull final CollectTable collect) { holder.tv_time.setText(DateUtils.friendlyTime(collect.getCreatedAt())); holder.tv_tag.setText(collect.getType()); holder.tv_desc.setText(collect.getDesc()); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { WebViewActivity.start(holder.itemView.getContext() , collect.getDesc(), collect.getUrl()); } }); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { CollectTable deleteBean = new CollectTable(); deleteBean.setObjectId(collect.getObjectId()); DialogUtils.showUnDoCollectDialog(v, deleteBean, new DeleteListener() { @Override public void onSuccess() { int position = getPosition(holder); MultiTypeAdapter adapter = (MultiTypeAdapter) getAdapter(); adapter.getItems().remove(position); recyclerView.getAdapter().notifyItemRemoved(position); recyclerView.getAdapter().notifyItemChanged(position, adapter.getItemCount()); } @Override public void onFailure(int i, String s) { SnackBarUtils.makeShort(holder.itemView, "删除失败").danger(); } }); return true; } }); } static class ViewHolder extends RecyclerView.ViewHolder { TextView tv_people; TextView tv_time; TextView tv_tag; TextView tv_desc; ViewHolder(View itemView) { super(itemView); tv_desc = (TextView) itemView.findViewById(R.id.tv_desc); tv_tag = (TextView) itemView.findViewById(R.id.tv_tag); tv_time = (TextView) itemView.findViewById(R.id.tv_time); tv_people = (TextView) itemView.findViewById(R.id.tv_people); } } }