Android中全局变量与局部变量的使用总结
ahong286
8年前
<p>全局变量顾名思义就是在整个的类中或者可在多个函数中调用的变量。也称为外部变量。局部变量则是特定过程或函数中可以访问的变量。声明一个变量是很 容易的,但是讲到使用的时候,却不是想象的那样简单。至于本人则是经常定义全局变量使用,但也就是因为这样,定义的是全局变量。也饶了不少的弯子。</p> <p style="text-align:center"><img src="https://simg.open-open.com/show/cada6230642e37c76eef4bf6f86be083.jpg"></p> <p>在使用Adapter即适配器的时候,通常适配器总是与listView使用,因为一个listView 基本上都会有一个listView的Item的布局,下面的情景是:在每个Item里面都会有一个ImageView,当我点击某一条的时候,则需要为该 Item的ImageView换背景色或者换成别的背景图片,这个时候可能会出现的一种情况是 你明明点的第一条,你会发现第三条或者第二条的图片也变了。这就是因为你定义的是全局变量。代码部分如下:</p> <pre> <code class="language-java">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; } } </code></pre> <p>上面的部分,ImageView就是一个全局变量。而这个时候,我们则需要把 ImageView定义为局部变量,</p> <pre> <code class="language-java">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; } } </code></pre> <p>这个时候则表示每一个Item里的ImageView了。还有一种情况是在做购物车的时候,可以点击加减的图标去改变购物车内的商品数量。当你定义数量 num 的时候,也必须定义为局部变量。如果会使用ViewHolder的话更好了。</p> <p> </p> <p>来自:http://mobile.51cto.com/android-530098.htm</p> <p> </p>