1. 程式人生 > >學習筆記-ListView中控制元件的重新整理-setTag的兩種用法

學習筆記-ListView中控制元件的重新整理-setTag的兩種用法

在ListView中,有時候需要動態更新其中某些控制元件的內容。更新的方法有以下幾個:

方法一:更新所有item的資訊

在更新後,直接呼叫adapter.notifyDataSetChanged(); 

但是這是最耗資源的做法。通常我們只想更新一個item中的其中某個view,這樣,效率很低。

方法二:只更新需要更新的view。關鍵是拿到相應view的引用。

建立一個list儲存需要更新的view

List<View> needToUpdate;
needToUpdate = new ArrayList<View>();

然後再adapter的getView方法中,將需要更新的view新增進去:

holder.summary = (TextView) convertView.findViewById(R.id.ii_hall_lottery_summary);
needToUpdate.add(holder.summary);    //這裡holder.summary是一個TextView

然後就可以在外面找到該控制元件:

TextView view = (TextView)categoryList.findViewWithTag(0);
if(view != null) {
<span style="white-space:pre">	</span>view.setText(text);
}

方法三:如果不想多維護一個ListView,可以使用convertView.setTag(Object)方法:

方法說明:

Sets the tag associated with this view. A tag can be used to mark a view in its hierarchy and does not have to be unique within the hierarchy. Tags can also be used to store data within a view without resorting to another data structure.

我們原先使用的都是第二個功能,即convertView.setTag(holder)來記錄holder

這裡使用它的另一項功能:

holder.summary.setTag(position); //記錄下這個view

然後可以在外面找到該控制元件:

TextView view = (TextView)categoryList.findViewWithTag(0);
if(view != null) {
	view.setText(text);
}
這種方法比較方便。

相關推薦

學習筆記-ListView控制元件重新整理-setTag用法

在ListView中,有時候需要動態更新其中某些控制元件的內容。更新的方法有以下幾個: 方法一:更新所有item的資訊 在更新後,直接呼叫adapter.notifyDataSetChanged();  但是這是最耗資源的做法。通常我們只想更新一個item中的其中某個vie

C#開發學習筆記:向Dev控制元件的GridControl新增自定義複選框

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">Dev控制元件庫自帶的有複選框列,預設是不顯示狀態,如果需要則設定相關

IOS開發學習筆記十三 UIScrollView控制元件實現輪播圖

效果圖:專案地址 程式碼: #import "ViewController.h" @interface ViewController ()<UIScrollViewDelegate> @property (weak, nonatomic) IBOutlet

python學習筆記之tkiner控制元件——【Lable】

Hello tkiner Lable 在使用tkiner Lable之前,需要先匯入tkiner: from tkinter import * 使用Lable控制元件的語法: Label(master,option1,option

《Android群英傳》學習筆記之Android控制元件架構與自定義控制元件詳解

一、Android控制元件架構: 控制元件大致分為兩類:ViewGroup控制元件與View控制元件。View是繪製在螢幕上的使用者能與之互動的一個物件。而ViewGroup則是一個用於存放其他Vi

PyQt4 學習筆記6之控制元件

PyQt4 控制元件 單擊此處檢視原文。 部件(widgets)是應用程式的基本構建塊。PyQt4包含廣泛的各種部件,包括按鈕、單選框、滑動塊和列表框等。在本節中,主要介紹PyQt4中幾個常用的部件:QtGui.QCheckBox, ToggleButton

Python學習筆記:常用控制元件

按鈕(Button及其家族)· 功能:接受使用者的點選事件,觸發相應的操作。· 常用按鈕:wx.Button:文字按鈕wx.BitmapButton:點陣圖按鈕wx.ToggleButton:開關按鈕· 繫結處理按鈕點選的事件選單(Menu及其元件)wxPython用於建立選

學習筆記-----listview含有togglebutton

還是小菜鳥一直,今天開始嘗試寫部落格,其實就是自己的學習筆記吧 今天要寫的是一個listview中含有togglebutton的一些自己所需要注意的地方。 其餘的就不說,就直接標題,緣由是要寫一個隱私設定,需要一個開關,之前用preference來寫,但是自

QT學習筆記11常用控制元件

Qt為我們應用程式介面開發提供的一系列的控制元件,下面我們介紹兩種最常用的兩種,所有控制元件的使用方法我們都可以通過幫助文件獲取。 1 QLabel控制元件使用 QLabel是我們最常用的控制元件之一,其功能很強大,我們可以用來顯示文字,圖片和動畫等。 顯示文字 (普

【Unity 3D】學習筆記二:Button控制元件(按鈕)

Unity 學習筆記二 學習資料:《Unity 3D遊戲開發》 宣雨鬆 玩過的遊戲也不少,恐怕到現在也沒有見過哪一款遊戲會沒有按鈕控制元件。即使如此,我也不是很喜歡按鈕這個控制元件。對著平的螢幕摸按鈕,總給我一種不實在的感覺吧。也許在未來,按鈕以及其他的控制元件,會被人

MFC子執行緒更新控制元件內容的辦法

一、概述 每個系統中都有執行緒(至少都有一個主執行緒),而執行緒最重要的作用就是並行處理,提高軟體的併發率。針對介面來說,還能提高介面的響應能力。一般的,為了應用的穩定性,在資料處理等耗時操作會單獨在一個執行緒中執行,而所有與主UI執行緒有關的控制元件資料重新整理應該到主UI執行緒中處理。也就

android控制元件點選次才響應onclick方法

android中button點選兩次才響應onclick方法:頁面上剛好有EditText,而此時焦點在EditText上,點選button時會出現這種情況: 第一次點選好像是獲取焦點,第二次才是點選事件。 xml檔案

[MongoDB學習筆記-02] Node.js連線MongoDB的方法

MongoDB Node.js驅動程式是被官方所支援的原生Node.js驅動程式,他是至今為止最好的實現, 並且得到了MongoDB官方的支援。MongoDB團隊已經採用MongoDB Node.js驅動程式作為標準方法。 npm install mong

Solr6.2.1 學習筆記(一)搭建執行環境(方式)

1.準備工作 Java JDK8 下載並安裝jdk1.8(solr6.*是基於JDK1.8開發的) tomcat8.0 下載並解壓tomcat8 2.在jetty伺服器下執行 solr解壓之後目錄結構如下: solr5之後釋出版本自帶jetty

kivy學習筆記-轉到新介面之方法

修改或切換應用程式介面顯示的Widgets方法如下例程(在上一篇筆記中程式碼的基礎上擴充套件),具體方法和說明見程式碼中的註釋:MyForm: # 頂級GUI部件類 <MyForm&

C#自動實現Dll(OCX)控制元件註冊的方法

      儘管MS為我們提供了豐富的.net framework庫,我們的程式C#開發帶來了極大的便利,但是有時候,一些特定功能的控制元件庫還是需要由第三方提供或是自己編寫。當需要用到Dll引用的時候,我們通常會通過“新增引用”的方式將它們納入到專案中,然後就可以像使用自

Android控制元件設定透明度方式

在開發中總會出現給控制元件指定透明度的需求,這裡一Button控制元件為例,總結設定透明度的三種方式: 方式一:XML中實現 android:background="#00000000"顏色值中前兩位

WPF 獲取 ListView DataTemplate 控制元件

原文: WPF 獲取 ListView DataTemplate 中控制元件值 RT 雖然DataTemplate 是用來繫結的,一般用ONE TWOWAY 來繫結傳遞或獲取資料. 但是今天這個需求真是沒辦法,在繫結的模板內添加了一個非繫結的資料,需要手動取值. 解決方案原理:

【Vue.js學習筆記】11:元件CSS的作用域

樣式表最終的生成位置 有兩個元件,一個是根元件App,一個是子元件Users。它們都有一個h2標籤,先只在根元件上寫CSS樣式。 App.vue <template> <div id="app"> <h2>父元件的h2標籤<

ListView圖示控制元件最完整《筆記3》

老師我按照你的程式碼寫發現footing的那個色塊一直浮在上面是不是要使用clear:both可是為什麼你沒用就可以實現呢 冒市燈6R6S9S17W濫對庸故郵誒 《 http://babyknow.baidu.com/article/6eac9314113830d1876