課程
/移動(dòng)開發(fā)
/Android
/Android必學(xué)-BaseAdapter的使用與優(yōu)化
視頻既然說findById方法耗時(shí),為什么這里還是用到findById方法
2015-09-01
源自:Android必學(xué)-BaseAdapter的使用與優(yōu)化 4-1
正在回答
我回答下,這里有兩個(gè)問題。
1、首先第一這里的關(guān)鍵不是findviewbyid比其他耗時(shí)。不是這個(gè)原因。這里主要的原因是,如果只是純粹的使用findViewById,那么其實(shí)在每次調(diào)用getView這個(gè)方法的時(shí)候都創(chuàng)建了控件對象。簡單來說比如你有10個(gè)item,那么對于的item中的ImageView對象創(chuàng)建了10個(gè)。假如你item有1000條1萬條,那對于的你里面的對象就創(chuàng)建了多少個(gè)。這樣太消耗內(nèi)存了。
2、而通過setTag和getTag的方法,其實(shí)只是在第一次創(chuàng)建了控件對象,之后一直在復(fù)用之前的。
3、這里所謂的文藝式,其實(shí)核心內(nèi)容就是復(fù)用。復(fù)用兩個(gè)內(nèi)容。第一個(gè)是整個(gè)item的view對象。第二個(gè)就是item中里面的單個(gè)控件。簡單來說對象還是那個(gè)對象,唯一不同的就是對象里面的參數(shù)。
普通式的findById是從R文件里面找的,文藝式的是用getTag從之前加載過的Adapter里面找,很明顯R文件里的id要比加載過的Adapter要多得多,所以后者效率高。
舉報(bào)
了解數(shù)據(jù)適配器的使用方法,寫出高效、文藝的BaseAdapter
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-01-19
我回答下,這里有兩個(gè)問題。
1、首先第一這里的關(guān)鍵不是findviewbyid比其他耗時(shí)。不是這個(gè)原因。這里主要的原因是,如果只是純粹的使用findViewById,那么其實(shí)在每次調(diào)用getView這個(gè)方法的時(shí)候都創(chuàng)建了控件對象。簡單來說比如你有10個(gè)item,那么對于的item中的ImageView對象創(chuàng)建了10個(gè)。假如你item有1000條1萬條,那對于的你里面的對象就創(chuàng)建了多少個(gè)。這樣太消耗內(nèi)存了。
2、而通過setTag和getTag的方法,其實(shí)只是在第一次創(chuàng)建了控件對象,之后一直在復(fù)用之前的。
3、這里所謂的文藝式,其實(shí)核心內(nèi)容就是復(fù)用。復(fù)用兩個(gè)內(nèi)容。第一個(gè)是整個(gè)item的view對象。第二個(gè)就是item中里面的單個(gè)控件。簡單來說對象還是那個(gè)對象,唯一不同的就是對象里面的參數(shù)。
2015-12-17
普通式的findById是從R文件里面找的,文藝式的是用getTag從之前加載過的Adapter里面找,很明顯R文件里的id要比加載過的Adapter要多得多,所以后者效率高。