package cn.daixiaodong.myapp.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.avos.avoscloud.AVObject;
import com.squareup.picasso.Picasso;
import java.util.List;
import cn.daixiaodong.myapp.R;
/**
* 首页所有的idea列表 Adapter
*/
public class IdeaAdapter extends RecyclerView.Adapter<IdeaAdapter.MyViewHolder> {
private Context mContext;
private List<AVObject> mDataSet;
private LayoutInflater mLayoutInflater;
private OnItemClickListener mListener;
private int mWidth;
private float mScale;
public IdeaAdapter(Context context) {
this.mContext = context;
this.mLayoutInflater = LayoutInflater.from(context);
}
public IdeaAdapter(Context context, List<AVObject> data) {
this.mContext = context;
this.mDataSet = data;
this.mLayoutInflater = LayoutInflater.from(context);
}
public void setDataSet(List<AVObject> data) {
this.mDataSet = data;
notifyDataSetChanged();
}
public void addData(List<AVObject> data) {
this.mDataSet.addAll(0, data);
this.notifyItemInserted(1);
}
@Override
public IdeaAdapter.MyViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view = mLayoutInflater.inflate(R.layout.item_idea, viewGroup, false);
MyViewHolder viewHolder = new MyViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(final IdeaAdapter.MyViewHolder viewHolder, final int i) {
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mListener != null) {
mListener.onItemClick(viewHolder, i);
}
}
});
AVObject dream = mDataSet.get(i);
if (dream.getInt("tag") == 1) {
viewHolder.introduce.setVisibility(View.GONE);
viewHolder.title.setVisibility(View.GONE);
viewHolder.time.setVisibility(View.GONE);
viewHolder.tagName.setVisibility(View.VISIBLE);
viewHolder.tagName.setText(dream.getString("tagName"));
} else {
viewHolder.title.setVisibility(View.VISIBLE);
viewHolder.time.setVisibility(View.VISIBLE);
viewHolder.introduce.setVisibility(View.VISIBLE);
viewHolder.tagName.setVisibility(View.GONE);
viewHolder.title.setText(mDataSet.get(i).getString("title") + mDataSet.get(i).getAVUser("user").getUsername());
viewHolder.introduce.setText(dream.getString("introduce"));
}
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) viewHolder.image.getLayoutParams();
layoutParams.width = mWidth - (int) (16 * mScale + 0.5f);
layoutParams.height = (int) ((9 * layoutParams.width) / 16.0f);
viewHolder.image.setScaleType(ImageView.ScaleType.CENTER_CROP);
viewHolder.image.setLayoutParams(layoutParams);
/* Log.i("tag", layoutParams.width + "");
Log.i("tag", layoutParams.height + "");*/
Picasso.with(mContext).load(mDataSet.get(i).getString("imgUrl")).into(viewHolder.image);
// Picasso.with(mContext).load(mDataSet.get(i).getString("imgUrl")).resize()
}
@Override
public int getItemCount() {
if (mDataSet == null) {
return 0;
}
return mDataSet.size();
}
public interface OnItemClickListener {
void onItemClick(MyViewHolder viewHolder, int pos);
}
public void setImageSize(int width, float scale) {
this.mWidth = width;
this.mScale = scale;
}
public void setOnItemClickListener(OnItemClickListener listener) {
this.mListener = listener;
}
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView title;
public ImageView image;
public TextView time;
public TextView tagName;
public TextView introduce;
public MyViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.id_tv_title);
image = (ImageView) itemView.findViewById(R.id.id_iv_img);
time = (TextView) itemView.findViewById(R.id.id_tv_time);
tagName = (TextView) itemView.findViewById(R.id.id_tv_tag_name);
introduce = (TextView) itemView.findViewById(R.id.id_tv_introduce);
}
}
}