效果如图:
类ViewCacheForRandom9:
public class ViewCacheForRandom9 { private View baseView; private ImageView sex; private TextView distance; private ImageView imageView; public ViewCacheForRandom9(View baseView) { this.baseView = baseView; } public ImageView getSex() { if (sex == null) { sex = (ImageView) baseView.findViewById(R.id.txt_gv_sex); } return sex; } public TextView getdistance() { if (distance == null) { distance = (TextView) baseView.findViewById(R.id.txt_gv_distance); } return distance; } public ImageView getimageView() { if (imageView == null) { imageView = (ImageView) baseView.findViewById(R.id.img_gv_head); } return imageView; } }
类Random9GridViewAdapter:
public class Random9GridViewAdapter extends ArrayAdapter<NearPeople> {
private GridView gridView;
private AsyncImageLoader asyncImageLoader;
public Random9GridViewAdapter(Activity activity,List<NearPeople> near,GridView gridView1) {
super(activity,near);
this.gridView = gridView1;
asyncImageLoader = new AsyncImageLoader();
}
public View getView(int position,View convertView,ViewGroup parent) {
Activity activity = (Activity) getContext();
// Inflate the views from XML
View rowView = convertView;
ViewCacheForRandom9 viewCache;
if (rowView == null) {
LayoutInflater inflater = activity.getLayoutInflater();
rowView = inflater.inflate(R.layout.griditem,null);
viewCache = new ViewCacheForRandom9(rowView);
rowView.setTag(viewCache);
} else {
viewCache = (ViewCacheForRandom9) rowView.getTag();
}
NearPeople near = getItem(position);
// Load the image and set it on the ImageView
String imageUrl = near.getheadUrl();
ImageView imageView = viewCache.getimageView();
imageView.setTag(imageUrl);
Drawable cachedImage = asyncImageLoader.loadDrawable(imageUrl,new ImageCallback() {
public void imageLoaded(Drawable imageDrawable,String imageUrl) {
ImageView imageViewByTag = (ImageView) gridView.findViewWithTag(imageUrl);
if (imageViewByTag != null) {
imageViewByTag.setimageDrawable(imageDrawable);
}
}
});
if (cachedImage == null) {
imageView.setimageResource(R.drawable.head1);
}else{
imageView.setimageDrawable(cachedImage);
}
ImageView sex = viewCache.getSex();
if(near.getsex().equals("男"))
{
sex.setBackgroundResource(R.drawable.male);
}
else
sex.setBackgroundResource(R.drawable.female);
// Set the text on the TextView
TextView textView = viewCache.getdistance();
textView.setText(String.valueOf(near.getdistance()));
return rowView;
}
}
真正调用:
//附近的人
txt_around.setonClickListener(new OnClickListener() {
public void onClick(View v) {
// Todo Auto-generated method stub
LinearLayout layout = (LinearLayout) inflater.inflate(
R.layout.peoplearound,null).findViewById(R.id.lin_aroundpeople);
GridView lv=(GridView)layout.getChildAt(0);
SoapObject so= WebServiceUtil.getRandom9PeopleList(spotid);
TextView morepeople = (TextView)layout.findViewById(R.id.txt_morepeople);
morepeople.setonClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// Todo Auto-generated method stub
Intent intent1=new Intent(viewMessageActivity.this,PeopleAroundActivity.class);
viewMessageActivity.this.startActivity(intent1);
}
});
try
{
SoapObject detail = (SoapObject) so.getProperty("getRandom9PeopleList"
+ "Result");
Log.v("R",detail.toString());
List<NearPeople> list = new ArrayList<NearPeople>();
NearPeople[] n = new NearPeople[detail.getPropertyCount()];
for (int i=0;i<detail.getPropertyCount();i++)
{
n[i] = new NearPeople();
}
n=parsePeolist(detail);
for(int i=0;i<n.length;i++){
list.add(new NearPeople( n[i].getheadUrl(),n[i].getsex(),n[i].getdistance()));
}
lv.setAdapter(new Random9GridViewAdapter(viewMessageActivity.this,list,lv));
}
catch(Exception e){
Toast.makeText(viewMessageActivity.this,"该景点附近没有游客",Toast.LENGTH_LONG).show();
morepeople.setText("该景点附近没有游客");
morepeople.setClickable(false);
}
lin.removeAllViews();
lin.addView(layout);
lv.setonItemClickListener(new OnItemClickListener(){
@Override public void onItemClick(AdapterView<?> arg0,View arg1,int arg2, long arg3) { // Todo Auto-generated method stub Intent intent = new Intent(viewMessageActivity.this,PeopleInfoActivity.class); intent.putExtra("peopleid","v10000001"); startActivity(intent); }}); // TextView morepeople1 = (TextView)findViewById(R.id.txt_more); morepeople.setonClickListener(new OnClickListener(){ @Override public void onClick(View v) { // Todo Auto-generated method stub Intent intent1=new Intent(viewMessageActivity.this,PeopleAroundActivity.class); viewMessageActivity.this.startActivity(intent1); } }); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。