先来一张效果图,点击右上角的叉实现删除item,点击修改实现跳转到编辑页面。
实现的原理:修改适配中的getview方法,核心代码如下:
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view;
ViewHolder viewHolder = null;
if (convertView == null) {
view = inflater.inflate(resourceId, null);
viewHolder = new ViewHolder();
viewHolder.cpimg_cpgl = (ImageView) view
.findViewById(R.id.cpimg_cpgl);
viewHolder.cplistprice = (TextView) view
.findViewById(R.id.cplistprice);
viewHolder.cpms_cpgl = (TextView) view.findViewById(R.id.cpms_cpgl);
viewHolder.cptitle_cpgl = (TextView) view
.findViewById(R.id.cptitle_cpgl);
viewHolder.ypriceval_cpgl = (TextView) view
.findViewById(R.id.ypriceval_cpgl);
viewHolder.delete_cpgl = (Button) view
.findViewById(R.id.delete_cpgl);
viewHolder.xg_cpgl = (Button) view.findViewById(R.id.xg_cpgl);
viewHolder.zhekou_cpgl = (TextView) view
.findViewById(R.id.zhekou_cpgl);
view.setTag(viewHolder);
} else {
view = convertView;
viewHolder = (ViewHolder) view.getTag();
}
viewHolder.cpimg_cpgl.setImageResource((Integer) array.get(position).get("cpimg_cpgl"));
viewHolder.cptitle_cpgl.setText(array.get(position).get("cptitle_cpgl")
.toString());
viewHolder.cpms_cpgl.setText(array.get(position).get("cpms_cpgl")
.toString());
viewHolder.cplistprice.setText(array.get(position).get("cplistprice")
.toString());
viewHolder.zhekou_cpgl.setText(array.get(position).get("zhekou_cpgl")
.toString());
viewHolder.ypriceval_cpgl.setText(array.get(position)
.get("ypriceval_cpgl").toString());
viewHolder.xg_cpgl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Intent intent=new Intent(context, .class);
Intent intent=null;
intent=new Intent(context, AddCPActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
(如果調出的Activtivity只是一個功能片段,並沒有實際的意義,也沒有必要出現在長按Home鍵調出最近使用過的程序類表中,那麼使用FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
)
context.startActivity(intent);
}
});
viewHolder.delete_cpgl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
array.remove(position);
notifyDataSetChanged();
//Log.d("position", position+"");
}
});
return view;
}