對于ListView我是真的沒有底氣寫,感覺它很簡單很容易就實現(xiàn)了乳附,也覺得它好復(fù)雜内地,一不小心滿臉都是空指針伴澄,而且想要展現(xiàn)的效果更友好赋除,代碼就要更“高級”,要學(xué)的越來越多非凌,感覺ListView是個無底洞举农,從它能延伸出好多知識點(diǎn)。敞嗡。颁糟。
在這里先簡單說說一下我做的三個小例子吧,都是比較簡單的喉悴,灰常適合初學(xué)者初次接觸ListView棱貌。。箕肃。婚脱。
一、ListView簡單介紹
在Android開發(fā)中勺像,ListView是比較常用的控件障贸,它以列表的形式顯示具體內(nèi)容,并且能夠根據(jù)數(shù)據(jù)的長度自適應(yīng)顯示吟宦。在ListView中可以根據(jù)需要顯示自定義的列表內(nèi)容篮洁,包括文字(TextView)、圖片(ImageView)殃姓、按鈕(Button)等袁波,以此構(gòu)成圖文并茂的顯示效果瓦阐。
二、案例一——每行只有一個數(shù)據(jù)
先看效果圖吧篷牌,我比較喜歡一上來就直接一點(diǎn)垄分,哈哈哈:
這個例子就是展示一個列表,分別顯示了四種水果娃磺,在點(diǎn)擊列表某一行時薄湿,彈出改行的文字內(nèi)容。
做起來很easy偷卧,主要是要用到Adapter(適配器)豺瘤,剛開始使用適配器的都對它比較敬畏,比如我听诸。坐求。。
1晌梨、我們先在主布局文件中加入ListView控件桥嗤,如下:
我們規(guī)范的把它命名為mListView.
2、接下來仔蝌,我們設(shè)置一個名為list.xml的布局文件泛领,這個布局文件中主要用來設(shè)置我們希望的每行列表的布局。在這個例子中敛惊,我們只需要設(shè)置一個TextView來放我們的數(shù)據(jù)渊鞋。
3、然后就開始設(shè)置Activity吧瞧挤。
首先就是要聲明一個ListView對象锡宋,然后findViewById找到我們在布局文件中設(shè)置的ListView控件;
然后用一個數(shù)組來放我們的數(shù)據(jù)特恬;
接下來創(chuàng)建一個ArrayAdapter即泛型為字符串類型的適配器對象执俩,這個對象用來把我們的數(shù)據(jù)和列表綁定到一起。在適配器中我們要傳入四個參數(shù)癌刽,第一個是上下文役首,第二個是列表布局文件,第三個參數(shù)是數(shù)據(jù)將要傳入列表中的哪個控件妒穴,最后一個是數(shù)據(jù)源宋税。
然后調(diào)用setAdapter將適配器賦給我們設(shè)置的ListView對象。
最后設(shè)置列表點(diǎn)擊時間讼油,設(shè)置監(jiān)聽杰赛,當(dāng)用戶點(diǎn)擊列表時,我們用Toast彈出列表內(nèi)容即可矮台,這個內(nèi)容實際上是從數(shù)據(jù)源中拿到的乏屯。
實際上根时,這個簡單列表的用法和之前我們使用下拉框的情況很像,可以再回去參考復(fù)習(xí)一下辰晕。
三蛤迎、案例二——每行中有多個數(shù)據(jù)
在實際的應(yīng)用中,列表中常常會包含了各種數(shù)據(jù)含友,顯然替裆,上一個例子中一個列表中只有一個數(shù)據(jù)很不夠用,那就再來學(xué)習(xí)一個一行中有兩個數(shù)據(jù)的吧(捂臉哭)窘问,我們慢慢學(xué)習(xí)辆童,不著急,畢竟智商有限惠赫。正如前文所說把鉴,稍微有點(diǎn)擴(kuò)展,新知識隨之而來(微笑臉)......HashMap這個東西說實話儿咱,從大學(xué)我就經(jīng)常接觸它庭砍,但是直到現(xiàn)在,我還是很怕使用它混埠,理解的不深就會這樣怠缸。。岔冀。
先看效果圖:
凯旭,
我們在每一行設(shè)置了兩個數(shù)據(jù)概耻,第一個數(shù)據(jù)為姓名使套,第二個數(shù)據(jù)為手機(jī)號。
1鞠柄、同上一個列子侦高,先在主布局文件中設(shè)置一個ListView控件,代碼和上一樣厌杜,這里不再放了奉呛。
2、也同上夯尽,創(chuàng)建一個名為list.xml的布局文件瞧壮,主要是用來設(shè)置每一行列表的樣式。在這個例子中匙握,我們?yōu)槊恳恍性O(shè)置兩個水平的TextView咆槽,代碼如下:
3、轉(zhuǎn)到Activity開始搗鼓圈纺。秦忿。
在這段代碼里麦射,我們主要是在上個例子的基礎(chǔ)上加入了HashMap這個功能。HashMap可以創(chuàng)建多個對象灯谣,每個對象又能根據(jù)不同的鍵保存不同的數(shù)據(jù)潜秋,這就很方便的讓我們能把同一對象的多個信息屬性綁到一個HashMap對象上。
所以使用HashMap的步驟就是先new一個對象胎许,然后把數(shù)據(jù)put到對象中峻呛,接著把對象添加到list里,再用適配器把數(shù)據(jù)和列表綁到一起辜窑,這里用的SimpleAdapter適配器需要傳入五個參數(shù)杀饵,第一個表示上下文,第二個是數(shù)據(jù)源谬擦,第三個是列表布局文件切距,第四個是鍵名,最后一個是鍵對應(yīng)的列表中的控件id惨远。
三谜悟、案例三——圖片和文字并行
1、主Activity布局代碼
2北秽、寫List_Item的布局
3葡幸、寫Activity
4、看一下效果吧
這個例子和第二個例子很像贺氓,改動基本不大蔚叨,舉一反三就很容易理解啦。PS:請忽略我的圖片和文字是否匹配辙培,我只是拿來湊數(shù)的蔑水,并不知道這些車的牌子。扬蕊。搀别。勿噴!