日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Android 中文 API (93) —— BaseExpandableListAdapter

發(fā)布時(shí)間:2025/7/14 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 中文 API (93) —— BaseExpandableListAdapter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

  本章內(nèi)容是android.widget.BaseExpandableListAdapter,版本為Android 2.3 r1,翻譯來自"天涯明月刀",歡迎大家訪問他的博客:http://sd6733531.javaeye.com/,再次感謝"天涯明月刀" !期待你一起參與Android 中文API的翻譯,聯(lián)系我over140@gmail.com。
?

?

聲明

  歡迎轉(zhuǎn)載,但請保留文章原始出處:)
?

    農(nóng)民伯伯:http://over140.blog.51cto.com/

    Android中文翻譯組:http://goo.gl/6vJQl
?

?

正文

  一、結(jié)構(gòu)

?

?

public abstract class BaseExpandableListAdapter extends Object

implements ExpandableListAdapter, HeterogeneousExpandableList

?

java.lang.Object

android.widget.BaseExpandableListAdapter

?

直接子類

???????? ?????? CursorTreeAdapter,SimpleExpandableListAdapter

間接子類

ResourceCursorTreeAdapter, SimpleCursorTreeAdapter

?

?

  二、概述

?

  BaseExpandableListAdapterExpandableListAdapter的抽象基類,從一些數(shù)據(jù)中提供數(shù)據(jù)和視圖給可折疊列表視圖。

  所有繼承本類的Adapters需要保證實(shí)現(xiàn)的getCombinedChildId(long, long) getCombinedGroupId(long)方法能正確地從View組或View子元素的ID中生成唯一的ID號。

  (譯者注:組元素表示可折疊的列表項(xiàng),子元素表示列表項(xiàng)展開后看到的多個(gè)子元素項(xiàng)。由于可折疊列表單純尋找組元素和子元素的ID不是很方便,因此使用聯(lián)合ID的方式來解決。于是有了getCombinedChildId()getCombinedGroupId()方法。在andorid自帶的ApiDomos的例子中有這個(gè)的代碼:App/View/ExpandableList1)。

?

?

  三、公共方法
?

?

  public boolean areAllItemsEnabled ()

  是否啟用所有元素。

?

  public int getChildType (int groupPosition, int childPosition)

  獲取由getChildView(int, int, boolean, View, ViewGroup)方法創(chuàng)建的指定子元素類型。

  參數(shù)

????????????????   groupPosition?子元素所在的組位置

?????????????????????? childPosition?子元素所在的位置

???????????????? 返回值

?????????????????????? 0表示任意一個(gè)子元素類型,因此此時(shí)應(yīng)當(dāng)只聲明一種子元素類型。

?

  public?int?getChildTypeCount()

  獲取由getChildView(int, int, boolean, View, ViewGroup)創(chuàng)建的所有子元素類型個(gè)數(shù)。每種類型表示一個(gè)能被getChildView(int, int, boolean, View, ViewGroup)轉(zhuǎn)換的(任意組中的)View集合。如果適配器總是從所有的子元素中返回同一種類型,本方法將返回1。

  本方法將僅僅在AdapterView設(shè)置適配器時(shí)被調(diào)用。

??????????   返回值

????????????????   BaseExpandableListAdapter默認(rèn)返回1

?

  public long?getCombinedChildId?(long groupId, long childId)

  若你預(yù)見以下默認(rèn)實(shí)現(xiàn)的IDs可能出現(xiàn)沖突,請重寫本方法。

  實(shí)現(xiàn)返回一個(gè)long型:

  *0:不管ID指向的是一個(gè)子元素(未設(shè)置)還是一個(gè)組(已設(shè)置),對于本方法bit值為1.

  * 1-31:小于31位的組ID。

  * 32-63:小于32位的子元素ID。

  從列表所有項(xiàng)(組或子項(xiàng))中獲得一個(gè)唯一的子ID號??烧郫B列表要求每個(gè)元素(組或子項(xiàng))在所有的子元素和組中有一個(gè)唯一的ID。本方法負(fù)責(zé)根據(jù)所給的子ID號和組ID號返回唯一的ID。此外,若hasStableIds()true,那么必須要返回穩(wěn)定的ID

???????????  ? 參數(shù)

????????????????   groupID?? 包含該子元素的組ID

????????????????   childID????? 子元素的ID

???????????????? 返回

????????????????   列表所有項(xiàng)(組或子項(xiàng))中唯一的(和可能穩(wěn)定)的子元素ID號。

?

  public long?getCombinedGroupId?(long groupId)

  若你預(yù)見以下默認(rèn)實(shí)現(xiàn)產(chǎn)生IDs沖突的話,請重寫本方法。

  實(shí)現(xiàn)返回一個(gè)long型:

 ? * 0:不管ID指向的是一個(gè)子元素(未設(shè)置)還是一個(gè)組(已設(shè)置),對于本方法bit值為1.

 ? * 1-31:小于31位的組ID。

 ? * 32-63:小于32位的子元素ID。

  從列表所有項(xiàng)(組或子項(xiàng))中獲得一個(gè)唯一的子ID號??烧郫B列表要求每個(gè)元素(組或子項(xiàng))在所有的子元素和組中有一個(gè)唯一的ID。本方法負(fù)責(zé)根據(jù)所給的子ID號和組ID號返回唯一的ID。此外,若hasStableIds()true,那么必須要返回穩(wěn)定的ID。

  參數(shù)

????????????????   groupID?? 包含該子元素的組ID

???????????????? 返回

????????????????   列表所有項(xiàng)(組或子項(xiàng))中唯一的(和可能穩(wěn)定)的子元素ID號。

?

  public int?getGroupType?(int groupPosition)

  獲得由getGroupView(int, boolean, View, ViewGroup)方法創(chuàng)建的組元素類型。為設(shè)置的組元素。

???   參數(shù)

???????   groupPosition 應(yīng)返回類型所在組的位置

???   返回

???????   0表示任意組位置,因此此時(shí)應(yīng)當(dāng)只申明了一種組類型。

?

  public int?getGroupTypeCount?()

  返回由getGroupView(int, boolean, View, ViewGroup)方法創(chuàng)建的組視圖類型個(gè)數(shù)。每個(gè)類型表示一個(gè)能被getGroupView(int, boolean, View, ViewGroup)轉(zhuǎn)換的View集合。如果適配器總是返回同一種組類型,則此時(shí)本方法將返回1.

  本方法將僅當(dāng)適配器被AdapterView設(shè)置時(shí)調(diào)用。

??????????? 返回

???????????   BaseExpandableListAdapter默認(rèn)返回1.

?

  public boolean?isEmpty?()

????????? (譯者注:如果適配器沒有任何數(shù)據(jù),返回真。參見Adapter

?

  public void?notifyDataSetChanged?()

  (譯者注:當(dāng)后臺數(shù)據(jù)集發(fā)生改變時(shí),調(diào)用此方法響應(yīng)數(shù)據(jù)集的更改。)

  參見

notifyChanged()

?

  public void?notifyDataSetInvalidated?()

???????????   (譯者注:當(dāng)后臺數(shù)據(jù)集不被驗(yàn)證的時(shí)候,調(diào)用此方法。)

?????    參見

???????? notifyInvalidated()

?

  public void?onGroupCollapsed?(int groupPosition)

  當(dāng)組折疊的時(shí)候被調(diào)用。

?????????????????? 參數(shù)

??????????????????????????? groupPosition 要折疊的組所在位置

?

  public void?onGroupExpanded?(int groupPosition)

  當(dāng)組展開的時(shí)候被調(diào)用。

?????????????????? 參數(shù)

??????????????????????????? groupPosition 要折疊的組所在位置

?

  public void?registerDataSetObserver?(DataSetObserver observer)

  (譯者注:注冊當(dāng)用該適配器修改數(shù)據(jù)時(shí)調(diào)用的觀察器。

?

  public void?unregisterDataSetObserver?(DataSetObserver?observer)

  (譯者注:注銷之前通過 registerDataSetObserver(DataSetObserver) 方法注冊到該適配器的觀察器。

?

?

  四、補(bǔ)充
?

?

???????? 文章鏈接

???????? ???????? Android BaseExpandableListAdapter 教程

轉(zhuǎn)載于:https://blog.51cto.com/over140/582413

總結(jié)

以上是生活随笔為你收集整理的Android 中文 API (93) —— BaseExpandableListAdapter的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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