日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android之个性化ListView实现

發(fā)布時(shí)間:2025/3/8 Android 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之个性化ListView实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

Android中提供的ListView部件,用來(lái)在android手機(jī)中展現(xiàn)一個(gè)列表,這個(gè)列表的表現(xiàn)形式,完全由你選擇的Adapter有關(guān)系,android框架中已有的adapter,形式都比較單調(diào),能處理的數(shù)據(jù)都很一般。要想實(shí)現(xiàn)一個(gè)美觀的列表,就得寫自己的個(gè)性化adapter。?

具體過(guò)程分為這幾步:?
第一步:定義自己的ListView類,繼承android的ListView類。?
Java代碼?
  • public?class?CustomerizeListView?extends?ListView?{??
  • ???//..??
  • }??

  • 第二步:在自定義ListView類中寫一個(gè)自己的個(gè)性化Adapter類,因?yàn)楹妥约旱腖istView類相關(guān),那就定義成內(nèi)部類, 同時(shí)讓它繼承BaseAdapter類。例如在CustomerizeListView中添加一個(gè)CustomerizeListAdapter內(nèi)部類,如下:?
    Java代碼?
  • public?class?CustomerizeListView?extends?ListView?{??
  • ???//..??
  • ???/**?
  • ????*?Uses?for?setting?data?into?CustomerizeListView.?
  • ????*/??
  • ???protected?class?CustomerizeListAdapter?extends?BaseAdapter?{??
  • ??????//..??
  • ???}??
  • }??

  • 第三步:做一個(gè)自己個(gè)性化的layout,如下:?
    Xml代碼?
  • <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android"??
  • ????android:orientation="horizontal"??
  • ????android:layout_width="fill_parent"??
  • ????android:layout_height="fill_parent">??
  • ????<ImageView?android:id="@+id/icon"??
  • ????????android:layout_width="32dip"??
  • ????????android:layout_height="32dip"?/>??
  • </LinearLayout>??

  • 第四步:在自定義ListView中追加自己需要的數(shù)據(jù)。例如,在CustomerizeListView中追加一個(gè)customerizeData屬性,用來(lái)提供顯示用的數(shù)據(jù),如下:?
    Java代碼?
  • protected?Data?customerizeData;??

  • 第五步:復(fù)寫B(tài)aseApter類中g(shù)etView方法,在當(dāng)中追加自己的個(gè)性化外觀代碼,如下:?
    Java代碼?
  • public?View?getView(int?position,?View?convertView,?ViewGroup?parent)?{??
  • ????//..??????
  • ????convertView?=?LayoutInflater.from(context).inflate(R.layout.list_item_icon,?null);??
  • ????//Set?data.??
  • }??

  • 第六步:在自己的ListView構(gòu)造器中設(shè)置自己的個(gè)性化Adapter。例如在FilesListAdapter構(gòu)造器中添加這樣的代碼,如下:?
    Java代碼?
  • setAdapter(new?CustomerizeListAdapter(context));??


  • ??? 到目前為止,個(gè)性化ListView就基本上實(shí)現(xiàn)完畢!但這只是一個(gè)外觀,不能響應(yīng)用戶的操作,我們可以通過(guò)添加OnItemClickListener來(lái)響應(yīng)用戶的操作,添加OnItemClickListener這一步可以拿到別的地方去做,但是我覺(jué)得最好是在自定義ListView里面就追加自己的OnItemClickListener,原因是往往用戶點(diǎn)擊item時(shí),響應(yīng)需要的數(shù)據(jù)都和ListView相關(guān),拿到外面去做不方便,有時(shí)可能會(huì)破壞封裝。例如我們就可以在CustomerizeListView構(gòu)造器添加它本身的OnItemClickListener,如下:?
    Java代碼?
  • setOnItemClickListener(new?OnItemClickListener()?{??
  • ????????????public?void?onItemClick(AdapterView<?>?arg0,?View?arg1,?int?arg2,??
  • ????????????????????long?arg3)?{??
  • ????????????????//?Your?processing?procedure.??
  • ????????????}??
  • ????????});??


  • 下面是我自己開(kāi)發(fā)的一個(gè)文件瀏覽夾瀏覽的例子。?
    瀏覽文件:?
    ?

    顯示一個(gè)子文件:?
    ?

    選擇一個(gè)文件:?
    ?

    注意:
    ?
    ????? 1.apk文件,運(yùn)行1.6的模擬器上面;?
    ????? 2.源代碼附上。?
    • fileExplorer_apk.zip?(16.7 KB)
    • 描述: apk文件,運(yùn)行在1.6的模擬器上
    • 下載次數(shù): 82
    • fileExplorer_src.zip?(43 KB)
    • 下載次數(shù): 293
    • 查看圖片附件

    轉(zhuǎn)載于:https://my.oschina.net/201003674/blog/288903

    總結(jié)

    以上是生活随笔為你收集整理的Android之个性化ListView实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。