1. 程式人生 > >23—自定義ListView【通用】介面卡並實現監聽控制元件

23—自定義ListView【通用】介面卡並實現監聽控制元件

ListView :在Android應用開發過程中屬於最常用的系統元件之一,當然可能童鞋們問為什麼會突然遊戲開發中講這個,呵呵,其實在遊戲開發中,也會常常使用到系統元件,比如遊戲排行榜,簡單的遊戲關卡選擇等等,都可以來使用ListView來實現;

當然關於ListView我想大家都會使用了,那麼這篇文章也不是跟大家講解ListView是如果使用的,而是如何實現自定義一個【通用】介面卡類;

 在ListView三種介面卡當中,最受大家青睞的肯定就是SimpleAdapter介面卡,用過的童鞋們都很清楚,它的擴充套件性很強,可以將ListView中每一項都使用自定義佈局,插入N多元件;但是SimpleAdapter也有弱點,那就是當ListView中每一項有Button、CheckBox等這些有事件的元件,我們想監聽它們就必須自定義介面卡!那麼今天的重點也就是來講解一下如何寫一個自定義通用介面卡類!

SimpleAdapter 構造的時候,我們知道需要五個引數來進行對映資料到ListView中,那麼我們今天的自定義通用介面卡其實也就是實現系統SimpleAdapter的一個自定義版;

    OK,可能我說這麼多,大家還是不太懂,其實今天要講述的自定義通用介面卡優點有三點:

1.使用通用介面卡就不需要每次使用自定義介面卡的時候,都要去重新去寫一個,太累。。。。

  2.構造方法與SimpleAdapter構造方法相同,五個引數也一摸一樣!

3.只需要在自定義的介面卡類中,將我們需要監聽的元件進行設定監聽即可!別的程式碼不需要去改動!

例如我們需要完成下圖這種ListView:

(圖1)

首先我們來完成ListView中每項的佈局:

main.xml:

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="horizontal"
  4.     android:layout_width="fill_parent"
  5.     android:layout_height="fill_parent"
  6.     >
  7. <ImageView
  8.     android:layout_width="wrap_content"
  9.     android:layout_height
    ="wrap_content"
  10.     android:id="@+id/iv"
  11.     />
  12.    <LinearLayout
  13.         android:orientation="vertical"
  14.         android:layout_width="wrap_content"
  15.         android:layout_height="wrap_content"
  16.         >
  17.         <TextView
  18.             android:layout_width="wrap_content"
  19.             android:layout_height="wrap_content"
  20.             android:textSize="20sp"
  21.             android:id="@+id/bigtv"
  22.             />
  23.         <TextView
  24.             android:layout_width="wrap_content"
  25.             android:layout_height="wrap_content"
  26.             android:textSize="10sp"
  27.             android:id="@+id/smalltv"
  28.             />
  29.     </

    相關推薦

    23定義ListView通用介面卡實現控制元件

    ListView :在Android應用開發過程中屬於最常用的系統元件之一,當然可能童鞋們問為什麼會突然遊戲開發中講這個,呵呵,其實在遊戲開發中,也會常常使用到系統元件,比如遊戲排行榜,簡單的遊戲關卡選擇等等,都可以來使用ListView來實現;當然關於ListView我想大

    定義ListView通用介面卡實現控制元件

    ListView :在Android應用開發過程中屬於最常用的系統元件之一,當然可能童鞋們問為什麼會突然遊戲開發中講這個,呵呵,其實在遊戲開發中,也會常常使用到系統元件,比如遊戲排行榜,簡單的遊戲關卡選擇等等,都可以來使用ListView來實現; 當然關於ListView我想大家都會使用了,那麼這篇文章

    android:android實現多個按鈕事件

    直接擼程式碼: 我有四個按鈕,下面的程式碼演示瞭如何將多個按鈕用一個事件監聽 在onCreate函式裡面 Button button1 = (Button)findViewBy

    IOS開發UI篇之──定義UIActionSheet

    UIActionSheet類系iOS開發中實現警告框的重要的類,而在好多應用中,都對它進行了擴充套件,今天介紹一下自定義風格的UIActionSheet 一、自定義CustomActionSheet類   CustomActionSheet類繼承UIActionSh

    QTQtcreator的設計模式中將控制元件提升為定義控制元件

    測試環境 在工程中新增自定義的控制元件 如:MyWidget 進入設計模式,右鍵需要提升的控制元件(該控制元件的父類必須和自定義控制元件的父類相同,否則不能提升),選擇“提升為…”

    C#全局鍵盤

    控制 keyevent 註冊 相關 一個 rsh rds api函數 start using System; using System.Collections.Generic; using System.Text; using System.Runtime.Inter

    OracleORA-12514: TNS: 程序當前無法識別連接描述符中請求的服務

    otto display rod ack rate ron lis 請求 tool 早上使用PL/SQL連接Oracle的時候,報錯如下 解決辦法: 找到文件listener.ora,新增以下紅色區域,註意:路徑需要根據自己的Oracle安裝路徑自行設置 # liste

    MFC-007 獲取當前focus的控制元件ID

    【MFC】-007 獲取當前focus的控制元件ID 【MFC】-007 獲取當前focus的控制元件ID 1、由來 2、實現 1、由來   通過tab鍵切換控制元件輸入焦點時,需要根據不同

    PHP安卓手機物理返回按鍵

    if(window.history && window.history.pushState) { $(window).on('popstate', function() { var hashLocation = location.hash;

    WinForm介面開發之佈局控制元件"WeifenLuo.WinFormsUI.Docking"的使用

    本篇介紹Winform程式開發中的佈局介面的設計,介紹如何在我的共享軟體中使用佈局控制元件"WeifenLuo.WinFormsUI.Docking"。 佈局控制元件"WeifenLuo.WinFormsUI.Docking"是一個非常棒的開源控制元件,用過的人都深有體會,

    學習ASP.NET Core, 怎能不瞭解請求處理管道[3]: 定義一個伺服器感受一下管道是如何、接收和響應請求的

    我們在《伺服器在管道中的“龍頭”地位》中對ASP.NET Core預設提供的具有跨平臺能力的KestrelServer進行了介紹,為了讓讀者朋友們對管道中的伺服器具有更加深刻的認識,接下來我們採用例項演示的形式建立一個自定義的伺服器。這個自定義的伺服器直接利用HttpListener來完成針對請求的監聽、接收

    專欄 - WijmoJS 新一代純前端控制元件集入門指南

    WijmoJS 新一代純前端控制元件集入門指南 “快如閃電,觸控優先”,在提供優質服務和產品的同時,專注於企業應用開發,不斷優化產品架構,與時俱進。除在全球率先支援 AngularJS 外,現已全面應用於 React、Vuejs、

    Android定義view-打造酷炫的字型滑動高亮控制元件

    前言: 相信很多時候開發會遇到類似於音樂歌詞同步,播放到哪句歌詞的哪個詞時會逐漸高亮,這樣的描述還是不夠準確,iPhone的滑動解鎖的那種效果,相信很多人都會熟悉吧。今天,我們的首要任務就是開發一個類似於這種效果的安卓控制元件,以便在以後的專案中直接使用,看起來高大上有木有

    JQuery用JQuery來瀏覽器改變視窗大小事件

    做web開發的時候會遇到需要監聽瀏覽器視窗大小改變事件,而進行相關操作。這裡像大家介紹一下 JQuery瀏覽器視窗改變事件。$(window).resize(); 這裡需要注意 這個事件不要寫在頁面載入完成事件( $(function(){…} )內部,而需要寫在他外面。

    Button按鈕onTouch事件

    程式碼實現的功能是使得一個按鈕在按下的實現顯示黃色圖安,擡起的時候的顯示綠色圖案。 然後圖案自己設定形狀。當然還可以缺一角什麼的。 為Button繫結 OnTouchListener 監聽器。 程式碼

    Redis系列Spring boot實現Redis key失效事件

    > talk is cheap, show me the code. ## 一、開啟Redis key過期提醒 - 方式二:修改配置檔案 `redis.conf` ``` # 預設 notify-keyspace-events "" notify-keyspace-events Ex

    轉載BP增強 新增定義螢幕 KNA1 通用資料(英文)

    測試通過。 其他參考(中文):https://blog.csdn.net/guangcong2009/article/details/80569877                 英文:http://www.

    封裝Android定義ListView

    ListView中的Item介面 <!-- view_fileitem --> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.an

    web框架zheng學習筆記(三)阿里雲定義映象的使用

    要想成功執行zheng專案,必須要安裝JDK,Tomcat,Redis,Zookeeper等工具,如果下次再買新的伺服器,又重新安裝這些軟體,阿里雲提供了自定義映象功能,可以快速複製伺服器,免除了再次配置環境的痛苦。 背景: 華東2區有原來的A伺服器,在華北3區新購了B伺服器,想要把A的系統

    Linux下定義Shell終端提示符

    目錄 基本轉義符 字型顏色 背景顏色 移動游標 @ Linux系統終端提示符的特徵由系統環境變數 PS1(Prompt String One)定義。 我們可以通過命令echo $PS1來檢視當前設定,如下圖: 同樣,我們可以通過修改PS1的值來改變終端提示資訊: 但這只是臨時