package com.dazhongcun.merchants.adapter; import java.util.List; import org.json.JSONObject; import com.afollestad.materialdialogs.MaterialDialog; import com.afollestad.materialdialogs.MaterialDialog.SimpleCallback; import com.afollestad.materialdialogs.Theme; import com.dazhongcun.meifa.merchants.R; import com.dazhongcun.merchants.entity.MakeEntity; import com.dazhongcun.widget.FancyButton; import android.app.Activity; import android.content.Context; import android.os.Parcelable; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private final Context mContext; private List<MakeEntity> datas; public final Activity ac; public RecyclerViewAdapter(Context context, List<MakeEntity> datas, Activity ac) { mContext = context; this.datas = datas; this.ac = ac; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { switch (viewType) { case MakeEntity.LOADMORE: View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.load_more, parent, false); ProgressBar bar = (ProgressBar)v.findViewById(R.id.progress); return new RecyclerView.ViewHolder(v) { }; case MakeEntity.ITEM: View view = (View) LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item, parent, false); return new ListViewHolder(mContext, view, ac); default: View views = (View) LayoutInflater.from(parent.getContext()) .inflate(R.layout.list_item, parent, false); return new ListViewHolder(mContext, views, ac); } } @Override public int getItemViewType(int position) { return datas.get(position).getLoadtype(); } @Override public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { MakeEntity ent = datas.get(position); switch (ent.getLoadtype()) { case MakeEntity.LOADMORE: break; case MakeEntity.ITEM: ListViewHolder viewHolders = (ListViewHolder) viewHolder; viewHolders.makeID.setText(String.format(mContext.getResources() .getString(R.string.makeID), ent.getId())); viewHolders.makeMan.setText(ent.getUserName()); viewHolders.makeType.setText(ent.getOutType()); viewHolders.makePhone.setText(ent.getMobile()); viewHolders.makeName.setText(ent.getStyListName()); viewHolders.makeTime.setText(ent.getOutTime()); viewHolders.makeDate.setText(ent.getOutdate()); viewHolders.makeCreateDate.setText(ent.getCreateDate()); viewHolders.done.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(mContext, "点击完成" + position, Toast.LENGTH_SHORT).show(); new MaterialDialog.Builder(ac) .title("确认订单") .content( "确定完成 "+String.format(mContext.getResources() .getString(R.string.makeID),getObj(position).getId())+" 该订单吗?") .theme(Theme.LIGHT) // the default is light, so you don't // need this line .positiveText(R.string.accept) // the default is 'Accept' .positiveColor(mContext.getResources().getColor(R.color.merchants_color)) .negativeText(R.string.decline) // leaving this line out // will remove the negative // button .callback(new MaterialDialog.Callback() { @Override public void onPositive(MaterialDialog dialog) { Toast.makeText(mContext, "点击完成" + position, Toast.LENGTH_SHORT).show(); } @Override public void onNegative(MaterialDialog dialog) { dialog.dismiss(); } }) .build().show(); } }); break; default: ListViewHolder viewHolderd = (ListViewHolder) viewHolder; viewHolderd.makeID.setText(String.format(mContext.getResources() .getString(R.string.makeID), ent.getId())); viewHolderd.makeMan.setText(ent.getUserName()); viewHolderd.makeType.setText(ent.getOutType()); viewHolderd.makePhone.setText(ent.getMobile()); viewHolderd.makeName.setText(ent.getStyListName()); viewHolderd.makeTime.setText(ent.getOutTime()); viewHolderd.makeDate.setText(ent.getOutdate()); viewHolderd.makeCreateDate.setText(ent.getCreateDate()); break; } } @Override public int getItemCount() { return datas.size(); } public void remove(int i) { datas.remove(i); notifyItemRemoved(i); } public void add(MakeEntity entitye) { this.datas.add(entitye); notifyItemInserted(datas.size() - 1); } public void addAll(List<MakeEntity> list) { this.datas.addAll(list); notifyDataSetChanged(); } public MakeEntity getObj(int position){ return datas.get(position); } static class ListViewHolder extends RecyclerView.ViewHolder { public View mTextView; private final Context mContext; private final Activity ac; public FancyButton makeID; public FancyButton done; public TextView makeMan; public TextView makeType; public TextView makePhone; public TextView makeName; public TextView makeTime; public TextView makeDate; public TextView makeCreateDate; public ListViewHolder(Context mCon, View v, Activity acd) { super(v); mTextView = v; mContext = mCon; this.ac = acd; this.makeID = (FancyButton) v.findViewById(R.id.makeID); this.makeID.setEnabled(false); this.makeMan = (TextView) v.findViewById(R.id.makeMan); this.makeType = (TextView) v.findViewById(R.id.makeType); this.makePhone = (TextView) v.findViewById(R.id.makePhone); this.makeName = (TextView) v.findViewById(R.id.makeName); this.makeTime = (TextView) v.findViewById(R.id.makeTime); this.makeDate = (TextView) v.findViewById(R.id.makedate); this.done = (FancyButton) v.findViewById(R.id.done); this.makeCreateDate = (TextView) v .findViewById(R.id.makeCreateDate); } } }