Android中的全域變數與局部變數使用小結_Android

來源:互聯網
上載者:User

全域變數顧名思義就是在整個的類中或者可在多個函數中調用的變數。也稱為外部變數。局部變數則是特定過程或函數中可以訪問的變數。聲明一個變數是很 容易的,但是講到使用的時候,卻不是想象的那樣簡單。至於本人則是經常定義全域變數使用,但也就是因為這樣,定義的是全域變數。也饒了不少的彎子。

在使用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的話更好了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.