package com.example.fei.yhb_20.adapter; import android.content.Context; import android.content.Intent; import android.support.v7.widget.RecyclerView; import android.text.SpannableString; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.example.fei.yhb_20.R; import com.example.fei.yhb_20.bean.Post; import com.example.fei.yhb_20.ui.DeatilActivity; import com.example.fei.yhb_20.utils.ExpressionUtil; import com.squareup.picasso.Picasso; import java.util.List; /** * 这里封装了对一些可以抽象的视图 * Email luckyliangfei@gmail.com * Created by fei on 4/4/15. */ public class ItemAdapter extends RecyclerView.Adapter<ItemAdapter.ViewHolder> { private static final String TAG = "ItemAdapter"; private List<Post> data; private Context context; public ItemAdapter(List<Post> data, Context context) { this.data = data; this.context = context; } @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(ViewHolder holder, final int position) { if (data != null) { //do something with the data final Post post = data.get(position); if (post == null) { Log.d(TAG, "posts传送失败"); } else { String zhengze = "f0[0-9]{2}|f10[0-7]"; SpannableString spannableString = ExpressionUtil.getExpressionString(context, post.getContent(), zhengze); holder.username.setText(post.getUser().getUsername()); holder.content.setText(spannableString); holder.time.setText(post.getUpdatedAt().substring(5, 10)); final String paths[] = post.getPaths().split("\\|"); Picasso.with(context).load(paths[0]).placeholder(R.drawable.avatar).error(R.drawable.avatar).resize(48, 48).into(holder.postPhoto); holder.container.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, DeatilActivity.class); intent.putExtra("postId", post.getObjectId()); intent.putExtra("sourceActivity", "MyCollections"); context.startActivity(intent); } }); } } } @Override public int getItemCount() { return data.size(); } static class ViewHolder extends RecyclerView.ViewHolder { TextView content, username, time; ImageView postPhoto; LinearLayout container; public ViewHolder(View itemView) { // super这个参数一定要注意,必须为Item的根节点.否则会出现莫名的FC. super(itemView); content = (TextView) itemView.findViewById(R.id.tv_content); username = (TextView) itemView.findViewById(R.id.tv_username); time = (TextView) itemView.findViewById(R.id.tv_time); postPhoto = (ImageView) itemView.findViewById(R.id.iv_post_photo); container = (LinearLayout) itemView.findViewById(R.id.item_container); } } }