package com.buaa.shortytall.adapter; import java.util.ArrayList; import android.content.Context; import android.os.Handler; import android.text.format.DateFormat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.RatingBar; import android.widget.TextView; import com.buaa.shortytall.R; import com.buaa.shortytall.bean.Comment; import com.buaa.shortytall.bean.Drug; import com.buaa.shortytall.network.ImageCache; public class DrugsAdapter extends BaseAdapter{ private Context mContext; private Handler mHandler; private ArrayList<Drug> mDrugs; private int drugnumber; private int commentsnumber; public int getDrugnumber() { return drugnumber; } public void setDrugnumber(int drugnumber) { this.drugnumber = drugnumber; } public int getCommentsnumber() { return commentsnumber; } public void setCommentsnumber(int commentsnumber) { this.commentsnumber = commentsnumber; } public DrugsAdapter(Context context, Handler handler){ this.mContext = context; this.mHandler = handler; this.mDrugs = new ArrayList<Drug>(); ImageCache.getInstance().setHandler(mHandler); } public void setDrugData( Drug mydrug){ this.mDrugs.add(mydrug); notifyDataSetChanged(); } public void setCommentsData( ArrayList<Comment> data){ Drug drugusercommentTextView = new Drug(); drugusercommentTextView.setFlag(2); mDrugs.add(drugusercommentTextView); Comment totalcomment = data.get(0); String commentstring = totalcomment.getmPoints(); data.remove(0); int size = data.size(); for(int i=0;i<size;i++) { Comment temp = data.get(i); Drug tempdrug = new Drug(); tempdrug.setmName(temp.getmName()); tempdrug.setmCommentDescription(temp.getmDescription()); tempdrug.setmPoints(temp.getmPoints()); tempdrug.setmTime(temp.getmTime()); tempdrug.setFlag(3); mDrugs.add(tempdrug); } Drug druguserpointsTextView = new Drug(); druguserpointsTextView.setFlag(4); mDrugs.add(druguserpointsTextView); Drug druguserpointsRating = new Drug(); druguserpointsRating.setmTotalPoints(commentstring); druguserpointsRating.setFlag(5); mDrugs.add(druguserpointsRating); Drug drugbuylink = new Drug(); drugbuylink.setFlag(6); mDrugs.add(drugbuylink); notifyDataSetChanged(); } @Override public int getCount() { if (mDrugs != null){ return mDrugs.size(); } return 0; } @Override public Object getItem(int arg0) { if (mDrugs != null){ return mDrugs.get(arg0); } return null; } @Override public long getItemId(int arg0) { return arg0; } @Override public View getView(int position, View convertView , ViewGroup parent) { int flags = mDrugs.get(position).getFlag(); if(flags==1) { DrugsItem item = new DrugsItem(mContext); if ( convertView == null || convertView.getTag() == null){ item = new DrugsItem(mContext); } else{ item = (DrugsItem)convertView.getTag(); } final Drug drug = mDrugs.get(position); item.setTitle(drug.getmTitle()); item.setDescription(drug.getmDrugDescription()); return item.getView(); } else if (flags==2) { View convertView1 = convertView; LayoutInflater inflater = LayoutInflater.from(mContext); convertView1=inflater.inflate(R.layout.comment,null); TextView singlecomment = (TextView)convertView1.findViewById(R.id.single_comment_textview); return convertView1; } else if (flags==3) { View mView = convertView; System.out.println("comments inside position"+mDrugs.get(position)); LayoutInflater inflater = LayoutInflater.from(mContext); mView = inflater.inflate(R.layout.comments_detail_list, null,false); TextView mName = (TextView)mView.findViewById(R.id.comments_username); TextView mDescription = (TextView)mView.findViewById(R.id.comments_detail); TextView mTime = (TextView)mView.findViewById(R.id.comments_time); RatingBar mPoints = (RatingBar)mView.findViewById(R.id.comments_points_ratingBar); final Drug drug = mDrugs.get(position); mName.setText(drug.getmName()); mDescription.setText(drug.getmCommentDescription()); String time = drug.getmTime()+"000"; Long timestamp = Long.parseLong(time); CharSequence sysTimeStr = DateFormat.format("MMMM dd, yyyy h:mmaa", timestamp); mTime.setText(sysTimeStr); mPoints.setNumStars(5); mPoints.setStepSize((float)0.5); float stars = Float.parseFloat(drug.getmPoints()); mPoints.setRating(stars); return mView; } else if(flags==4) { View convertView1 = convertView; LayoutInflater inflater = LayoutInflater.from(mContext); convertView1=inflater.inflate(R.layout.nowpoints,null); TextView singlecomment = (TextView)convertView1.findViewById(R.id.single_points_textview); return convertView1; } else if(flags==5) { View convertView1 = convertView; LayoutInflater inflater = LayoutInflater.from(mContext); convertView1=inflater.inflate(R.layout.nowpointsbar,null); final Drug drug = mDrugs.get(position); RatingBar singlecomment = (RatingBar)convertView1.findViewById(R.id.drugdetail_points_ratingBar); singlecomment.setNumStars(5); singlecomment.setStepSize((float)0.5); float totalpoints = Float.parseFloat(drug.getmTotalPoints().toString()); singlecomment.setRating(totalpoints); return convertView1; } else if(flags==6) { View convertView1 = convertView; LayoutInflater inflater = LayoutInflater.from(mContext); convertView1=inflater.inflate(R.layout.nowbuybutton,null); Button mybuyButton = (Button)convertView1.findViewById(R.id.drugdetail_buyit_button); return convertView1; } else { return null; } } }