1、为了防止拖动ListView时,在列表末尾重复数据显示。需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView);如果条件不满足,convertView = lmap.get(position);
2、监听每个子控件时,一定要加入final int currentPosition=position;这样可以牢牢抓住每次点击的响应位置;最好把控件集成到类中。
[java] view plain copy
-
package logic;
-
import java.util.HashMap;
-
import java.util.List;
-
import java.util.Map;
-
import logic.PlaceAdapter.ViewHolder;
-
import org.guiji.BigPictureActivity;
-
import org.guiji.ClassUserListActivity;
-
import org.guiji.CommentMoodActivity;
-
import org.guiji.R;
-
import org.guiji.UserHomeActivity;
-
import support.ClassUserListImageDownloadTask;
-
import support.ImageDownloadTask;
-
import support.SystemConstant;
-
import android.content.Context;
-
import android.content.Intent;
-
import android.text.Html;
-
import android.view.LayoutInflater;
-
import android.view.View;
-
import android.view.ViewGroup;
-
import android.view.View.OnClickListener;
-
import android.widget.BaseAdapter;
-
import android.widget.ImageView;
-
import android.widget.TextView;
-
public class ClassUserListAdapter extends BaseAdapter {
-
HashMap<Integer,View> lmap = new HashMap<Integer,View>();
-
private LayoutInflater mInflater=null;
-
private List<Map<String, String>> mData=null;
-
private ClassUserListImageDownloadTask imgtask=null;
-
private Context context;
-
public List<Map<String, String>> getmData() {
-
return mData;
-
}
-
public void setmData(List<Map<String, String>> mData) {
-
this.mData = mData;
-
}
-
public ClassUserListAdapter(Context context){
-
this.mInflater = LayoutInflater.from(context);
-
this.context=context;
-
}
-
@Override
-
public int getCount() {
-
return mData.size();
-
}
-
@Override
-
public Object getItem(int position) {
-
return mData.get(position);
-
}
-
@Override
-
public long getItemId(int position) {
-
return position;
-
}
-
@Override
-
public View getView(int position, View convertView, ViewGroup parent) {
-
ClassUserListViewHolder holder = null;
-
if (lmap.get(position)==null) {
-
imgtask=new ClassUserListImageDownloadTask();
-
convertView = mInflater.inflate(R.layout.classuserlist_item, null);
-
holder=new ClassUserListViewHolder();
-
holder.classuserlist_item_userlogo=(ImageView)convertView.findViewById(R.id.classuserlist_item_userlogo);
-
holder.classuserlist_item_username=(TextView)convertView.findViewById(R.id.classuserlist_item_username);
-
holder.classuserlist_item_statuscontent=(TextView)convertView.findViewById(R.id.classuserlist_item_statuscontent);
-
holder.classuserlist_item_idfans1=(TextView)convertView.findViewById(R.id.classuserlist_item_idfans1);
-
holder.classuserlist_item_idfans2=(TextView)convertView.findViewById(R.id.classuserlist_item_idfans2);
-
holder.classuserlist_item_idmood=(TextView)convertView.findViewById(R.id.classuserlist_item_idmood);
-
holder.classuserlist_item_idhuoyuevalue=(TextView)convertView.findViewById(R.id.classuserlist_item_idhuoyuevalue);
-
holder.classuserlist_item_msgpic=(ImageView)convertView.findViewById(R.id.classuserlist_item_msgpic);
-
holder.classuserlist_item_msgcontent=(TextView)convertView.findViewById(R.id.classuserlist_item_msgcontent);
-
holder.classuserlist_item_idtimeplace=(TextView)convertView.findViewById(R.id.classuserlist_item_idtimeplace);
-
holder.classuserlist_item_classbutton=(ImageView)convertView.findViewById(R.id.classuserlist_item_classbutton);
-
lmap.put(position, convertView);
-
convertView.setTag(holder);
-
holder.classuserlist_item_username.setText((String)mData.get(position).get(“username”));
-
if(mData.get(position).get(“idstatuscontent”)!=null){
-
holder.classuserlist_item_statuscontent.setText((String)mData.get(position).get(“idstatuscontent”));
-
holder.classuserlist_item_statuscontent.setVisibility(0);
-
}
-
if(mData.get(position).get(“idfans1”)!=null){
-
holder.classuserlist_item_idfans1.setText((String)mData.get(position).get(“idfans1”));
-
holder.classuserlist_item_idfans1.setVisibility(0);
-
}
-
if(mData.get(position).get(“idfans2”)!=null){
-
holder.classuserlist_item_idfans2.setText((String)mData.get(position).get(“idfans2”));
-
holder.classuserlist_item_idfans2.setVisibility(0);
-
}
-
holder.classuserlist_item_idmood.setText((String)mData.get(position).get(“idmo
od”)); -
if(mData.get(position).get(“idhuoyuevalue”).length()>=4)
-
holder.classuserlist_item_idhuoyuevalue.setText(“活跃值”+“(”+mData.get(position).get(“idhuoyuevalue”).substring(0, 4)+“)”);
-
else
-
holder.classuserlist_item_idhuoyuevalue.setText(“活跃值”+“(”+mData.get(position).get(“idhuoyuevalue”)+“0”+“)”);
-
if(mData.get(position).get(“idmsgcontent”)!=null){
-
holder.classuserlist_item_msgcontent.setText((String)mData.get(position).get(“idmsgcontent”));
-
holder.classuserlist_item_msgcontent.setVisibility(0);
-
}
-
if(mData.get(position).get(“idtime”)!=null){
-
holder.classuserlist_item_idtimeplace.setText((String)mData.get(position).get(“idtime”)+" "+(String)mData.get(position).get(“idplace”));
-
holder.classuserlist_item_idtimeplace.setVisibility(0);
-
}
-
String temp=SystemConstant.baseURLNone+mData.get(position).get(“userlogo”)+“,”+
-
SystemConstant.baseURLNone+mData.get(position).get(“idmsgpic”);
-
imgtask.execute(temp,holder);
-
}else {
-
convertView = lmap.get(position);
-
holder = (ClassUserListViewHolder)convertView.getTag();
-
}
-
final int currentPosition=position;
-
holder.classuserlist_item_userlogo.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
MainService.guiji.setCurrentURL(SystemConstant.baseURL+mData.get(currentPosition).get(“userLink”));
-
Intent it=new Intent(context,UserHomeActivity.class);
-
context.startActivity(it);
-
}
-
});
-
holder.classuserlist_item_username.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
MainService.guiji.setCurrentURL(SystemConstant.baseURL+mData.get(currentPosition).get(“userLink”));
-
Intent it=new Intent(context,UserHomeActivity.class);
-
context.startActivity(it);
-
}
-
});
-
holder.classuserlist_item_msgpic.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
MainService.guiji.setCurrentURL(SystemConstant.baseURLNone+mData.get(currentPosition).get(“idmsgpic”));
-
Intent it=new Intent(context,BigPictureActivity.class);
-
context.startActivity(it);
-
}
-
});
-
holder.classuserlist_item_idfans1.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
MainService.guiji.deleteReply(SystemConstant.baseURL+mData.get(currentPosition).get(“idfans1link”));
-
((ClassUserListActivity) context).createTask();
-
}
-
});
-
holder.classuserlist_item_idfans2.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
-
MainService.guiji.deleteReply(SystemConstant.baseURL+mData.get(currentPosition).get(“idfans2link”));
-
((ClassUserListActivity) context).createTask();
-
}
-
});
-
holder.classuserlist_item_classbutton.setOnClickListener(new OnClickListener() {
-
@Override
-
public void onClick(View v) {
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
如果你需要这些资料, ⬅ 专栏获取
**
[外链图片转存中…(img-uDigVP50-1719164710810)]
[外链图片转存中…(img-Mma55Eo3-1719164710810)]
[外链图片转存中…(img-bcxbszME-1719164710811)]
[外链图片转存中…(img-yLbZoVwI-1719164710811)]
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
如果你需要这些资料, ⬅ 专栏获取