今天碰到這樣一個(gè)難題,搞了很久都沒搞定,到網(wǎng)上搜索了一下,發(fā)現(xiàn)有很多人都在問這樣的問題,現(xiàn)在將自己解決和分析的結(jié)果放置如下:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了夏邑免費(fèi)建站歡迎大家使用!
在ArrayAdapter()這個(gè)類中有多個(gè)構(gòu)造方法,我僅據(jù)此列以作代表:
ArrayAdapter(Context context ,int textViewResourceId ,List
參數(shù):
context ----> the current context
textViewResourceId ----> the resource ID for a layout file contain a TextView to use when instantiating views.
List
第一個(gè)參數(shù):上下文,就是當(dāng)前的Activity.
寫法: MainActivity.this this
第二個(gè)參數(shù):Android sdk中自己內(nèi)置的一個(gè)布局,它里面只有一個(gè)TextView,這個(gè)參數(shù)是表明我們數(shù)組中每一條數(shù)據(jù)的布局是這個(gè)View,就是將每一條數(shù)據(jù)都顯示在這個(gè)View上面,也就是當(dāng)裝載在這個(gè)構(gòu)造函數(shù)中的layout時(shí),其layout的ID 必須是一個(gè)TextView,簡(jiǎn)言之,第2個(gè)參數(shù)應(yīng)該是ListView中每個(gè)選擇項(xiàng)的樣式,可以使用系統(tǒng)自帶的 android.R.layout.xxx,也可以是自定義的,僅包含TextView。
創(chuàng)建ArrayAdapter時(shí)候必須指定一個(gè)resource,該參數(shù)決定每個(gè)列表項(xiàng)的外觀樣式
simple_list_item_1:
每個(gè)列表項(xiàng)都是一個(gè)普通的TextView
simple_list_item_2: 有兩個(gè)TextView,一個(gè)單獨(dú)在一行,就是分兩行顯示
simple_list_item_checked: 每個(gè)列表項(xiàng)都是一個(gè)已勾選的列表項(xiàng)
第三個(gè)參數(shù):就是我們要顯示的數(shù)據(jù)。listView會(huì)根據(jù)這三個(gè)參數(shù),遍歷AdapterData里面的每一條數(shù)據(jù),讀出一條,顯示到第二個(gè)參數(shù)對(duì)應(yīng)的布局中,這樣就形成了我們看到的ListView.
下面是Android sdk自置的布局
路徑:C:\android-sdk_r22.3-windows\android-sdk-windows\platforms\android-16\data\res\layout
simple_list_item_1.xml
simple_list_item_2.xml
simple_list_item_checked.xml
*****************************************************************************************************
因?yàn)楦?jié)點(diǎn)必須是TextView,不然就會(huì)拋“ArrayAdapter requires the resource ID to be a TextView”
*****************************************************************************************************