Android中findViewById獲取控件返回為空問題怎么解決
在Android程序中,有時(shí)候需要加載非原來activity中xml布局中的控件,來使Android程序的界面更加豐富。
我本身是在使用ViewFlipper中遇到的問題。
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); inflater=(LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); View view=inflater.inflate(R.layout.myview, null); ImageView view=(ImageView)findViewById(R.id.imageview); }
眾所周知,我們通過調(diào)用findViewById來獲取布局中的控件元素,但是在我運(yùn)行的時(shí)候發(fā)現(xiàn)出現(xiàn)了 java.lang.NullPointerException的錯(cuò)誤。一開始我以為是獲取的view還是為空,但最終發(fā)現(xiàn)的是獲取的ImageView是空的。因?yàn)樵赗.java中已經(jīng)成功生成myview和imageview的id。經(jīng)過一些時(shí)間的搜索查詢,發(fā)現(xiàn)我們?cè)谥貙慉dapter的getView()函數(shù)時(shí),獲取一個(gè)控件元素是通過
holder.imageView=(ImageView)convertView.findViewById(R.id.imageView);
這樣的形式去獲取的。
所以我突然想到,如果在activity中直接調(diào)用findViewById方法,它的完整形式是this.findViewById().而我所需要的控件是不存在本身activity的布局中的,所以在獲取時(shí)改為
ImageView view=(ImageView)view.findViewById(R.id.imageview);
即通過控件所在的view調(diào)用findViewById方法,就可以獲取到正確的控件了。
這個(gè)本身不是什么大問題,但是如果不注意還是會(huì)花費(fèi)一定的時(shí)間,在此我只是為自己做好筆記,也為廣大開發(fā)Android的朋友提供便利。
以上所述是小編給大家介紹的Android中findViewById獲取控件返回為空問題的解決辦法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Android高仿微信對(duì)話列表滑動(dòng)刪除效果
這篇文章主要為大家詳細(xì)介紹了Android高仿微信對(duì)話列表滑動(dòng)刪除效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08Android擴(kuò)大View點(diǎn)擊區(qū)域方案示例
這篇文章主要為大家介紹了Android擴(kuò)大View點(diǎn)擊區(qū)域方案示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Android Studio EditText點(diǎn)擊圖標(biāo)清除文本內(nèi)容的實(shí)例解析
這篇文章主要介紹了Android Studio EditText點(diǎn)擊圖標(biāo)清除文本內(nèi)容的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11深入分析Android NFC技術(shù) android nfc開發(fā)
本篇文章我們對(duì)android開發(fā)中nfc技術(shù)做了全面的原理分析以及實(shí)現(xiàn)過程,需要的讀者們一起參考一下吧。2017-11-11Android懸浮按鈕點(diǎn)擊返回頂部FloatingActionButton
這篇文章主要為大家詳細(xì)介紹了Android懸浮按鈕FloatingActionButton點(diǎn)擊回到頂部的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Android設(shè)置當(dāng)TextView中的文字超過TextView的容量時(shí)用省略號(hào)代替
這篇文章主要介紹了Android設(shè)置當(dāng)TextView中的文字超過TextView的容量時(shí)用省略號(hào)代替 ,需要的朋友可以參考下2017-03-03Android實(shí)現(xiàn)簡(jiǎn)易計(jì)算功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)易計(jì)算功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06android.enableD8.desugaring?=?false引發(fā)問題解決
這篇文章主要為大家介紹了android.enableD8.desugaring?=?false引發(fā)問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03Android創(chuàng)建文件時(shí)出現(xiàn)java.io.IOException:?Operation?not?permitte
最近使用android10創(chuàng)建文件失敗,并拋出權(quán)限異常,這篇文章主要給大家介紹了Android創(chuàng)建文件時(shí)出現(xiàn)java.io.IOException:?Operation?not?permitted異常的解決方法,需要的朋友可以參考下2023-05-05