在使用Adapter即适配器的时候,通常适配器总是与listView使用,因为一个listView 基本上都会有一个listView的Item的布局,下面的情景是:在每个Item里面都会有一个ImageView,当我点击某一条的时候,则需要为该 Item的ImageView换背景色或者换成别的背景图片,这个时候可能会出现的一种情况是 你明明点的第一条,你会发现第三条或者第二条的图片也变了。这就是因为你定义的是全局变量。代码部分如下:
public class Adapter extends BaseAdapter { private ImageView img; public View getView(int position, View convertView, ViewGroup parent) { convertView = mInflater.inflate(R.layout.group_listview_item,null); img = (ImageView) convertView.findViewById(R.id.logo); return convertView; } }上面的部分,ImageView就是一个全局变量。而这个时候,我们则需要把 ImageView定义为局部变量,
public class Adapter extends BaseAdapter { public View getView(int position, View convertView, ViewGroup parent) { convertView = mInflater.inflate(R.layout.group_listview_item,null); ImageView img = (ImageView) convertView.findViewById(R.id.logo); return convertView; } }这个时候则表示每一个Item里的ImageView了。还有一种情况是在做购物车的时候,可以点击加减的图标去改变购物车内的商品数量。当你定义数量 num 的时候,也必须定义为局部变量。如果会使用ViewHolder的话更好了。
下一篇:常用的mysql命令汇总