Android實驗:如果View的ID相同會出現什麼效果?

來源:互聯網
上載者:User

1.實驗:通過布局編輯器強行指定兩個button id相同,然後在代碼中通過findViewById()獲得控制代碼後修改其文本。 
實驗結果:只有一個button的文本變化了,另一個不受影響。 
2.實驗:主布局只放一個linearLayout,代碼中動態new 一個button,然後同過Layout.addView()多次重複添加。 
實驗結果:發現程式直接報錯不讓運行了。 
3.實驗:主布局放置兩個linearLayout,代碼中new一個button後,通過Layout.addView()分別添加到兩個不同布局中去。 
實驗結果:發現程式直接報錯不運行了。 
4.實驗:Activity主布局放置一個按鈕Id為btn001,建立一個對話方塊,其布局中也放置一個按鈕,id同樣為btn001,在Activity以及Dialog的onCreate函數中都通過findViewById來尋找btn後修改文本。 
實驗結果:兩個按鈕的文本都修改成了各自的文本,互不影響。 
5.實驗:Activity中通過new建立一個button;將新建立的button添加到Activity上;建立一個對話方塊,將這個button再添加到對話方塊上。 
實驗結果:程式運行出錯。 


結論: 
1.同一工程中的View的ID可以一樣,在R檔案中,同樣的ID只會產生一個資料項目。 
2.兩個同ID的View被同一個View顯示時,通過findViewById只能訪問其中一個。 
3.同一個View(即new出來的控制代碼)只能被一個View管理,不能多次添加到另一個View或者另外多個View,否則程式運行出錯。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.