package cn.fanfan.detail.question; import java.util.ArrayList; import java.util.List; import cn.fanfan.common.GetUserNamImage; import cn.fanfan.common.ShowPic; import cn.fanfan.common.GetUserNamImage.onLoaderListener; import cn.fanfan.common.MyGridAdapter; import cn.fanfan.main.R; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.GridView; import android.widget.ImageView; import android.widget.TextView; public class CommentAdapter extends BaseAdapter { private List<AnswerItem> comitems; private Context context; public CommentAdapter(List<AnswerItem> comitems, Context context) { // TODO Auto-generated constructor stub this.comitems = comitems; this.context = context; } @Override public int getCount() { // TODO Auto-generated method stub return comitems.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return comitems.get(arg0); } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public View getView(final int pos, View arg1, ViewGroup arg2) { // TODO Auto-generated method stub System.out.println(comitems.get(pos).getUid()+"name 123123"); ViewHodler hodler; if (arg1 == null) { hodler = new ViewHodler(); arg1 = LayoutInflater.from(context).inflate(R.layout.comment_item, null); hodler.name = (TextView) arg1.findViewById(R.id.name); hodler.agree = (TextView) arg1.findViewById(R.id.agree); hodler.content = (TextView) arg1.findViewById(R.id.content); hodler.imageView = (ImageView) arg1.findViewById(R.id.userpic); hodler.gridView = (GridView) arg1.findViewById(R.id.gridView); arg1.setTag(hodler); } else { hodler = (ViewHodler) arg1.getTag(); } hodler.gridView.setTag(comitems.get(pos).getAnswer_id()+"gridview"); hodler.name.setTag(comitems.get(pos).getUid()+"name"); hodler.imageView.setTag(comitems.get(pos).getUid()+"userimage"); hodler.content.setText(Html.fromHtml(comitems.get(pos).getAnswer_content())); hodler.agree.setText(comitems.get(pos).getAgree_count()); arg1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.putExtra("answerid", comitems.get(pos).getAnswer_id()); intent.setClass(context, AnswerActivity.class); context.startActivity(intent); } }); GetUserNamImage getUserNamImage = new GetUserNamImage(context); getUserNamImage.getuserinfo(comitems.get(pos).getUid(),hodler.name,hodler.imageView,new onLoaderListener() { @Override public void onPicLoader(Bitmap bitmap, ImageView userimage) { // TODO Auto-generated method stub if (userimage.getTag()!=null && userimage.getTag().equals(comitems.get(pos).getUid()+"userimage")) { if (bitmap != null) { userimage.setImageBitmap(bitmap); } else { userimage.setImageDrawable(context.getResources() .getDrawable(R.drawable.ic_avatar_default));; } } } @Override public void onNameLoader(String name, TextView username) { // TODO Auto-generated method stub if (username.getTag() != null && username.getTag().equals(comitems.get(pos).getUid()+"name")) { username.setText(name); } } }); final ArrayList<String> urls = comitems.get(pos).getUrls(); if (urls != null && urls.size()>0 ) { hodler.gridView.setVisibility(View.VISIBLE); hodler.gridView.setAdapter(new MyGridAdapter(urls, context)); hodler.gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.putStringArrayListExtra("images", urls); intent.putExtra("tag",arg2); intent.setClass(context, ShowPic.class); context.startActivity(intent); } }); } else { hodler.gridView.setVisibility(View.GONE); } return arg1; } class ViewHodler { private TextView agree, name, content; private ImageView imageView; private GridView gridView; } }