標籤:tac tor get pack 相關 sqlite listview 用法 資料
ExpandableListView 基礎知識 1. ExpandableListView 的總體概述 ExpandableListView 是 android 中可以實現下拉 list 的一個控制項,是一個垂直滾動的心事兩個級 別清單項目手風琴試圖,清單項目是來自 ExpandableListViewaAdapter,組可以單獨展開。 ?2.重要的方法: expandGroup (int groupPos) ;//在分組列表視圖中 展開一組, setSelectedGroup (int groupPosition) ;//設定選擇指定的組。 setSelectedChild (int groupPosition, int childPosition, boolean shouldExpandGroup); getPackedPositionGroup (long packedPosition);//返回所選擇的組 isGroupExpanded (int groupPosition);//判斷此組是否展開 expandableListView.setDivider();這個是設定每個 Group 之間的分割線。 expandableListView.setGroupIndicator();這個是設定每個 Group 之前的那個表徵圖。 expandableListView.collapseGroup(int group); 將第 group 組收合 3. 適配器的介紹 ExpandableListAdapter,一個介面,將基礎資料連結到一個 ExpandableListView。 此接 口的實施將提供訪問 Child 的數據(由組分類),並執行個體化的 Child 和 Group。適配器中常用的重 要方法: getChildId (int groupPosition, int childPosition) 擷取與在給定組給予孩子相關的資料。 getChildrenCount (int groupPosition) 返回在指定 Group 的 Child 數目 4. 屬性和事件 1) 在 Android 中對子條目的點擊事件是通過 onChildClick()來實現 2) 對組的點擊事件是通過 onGroupClick()來實現的 Gson 架構:它是Google推出的一個請求網路資料的一個架構,常用的用法如下: 1) GSON 的兩個重要方法 在 GSON 的 API 中,提供了兩個重要的方法:toJson()和 fromJson()方法。其中,toJson()方法 用來實現將 Java 對象轉換為相應的 JSON 資料,fromJson()方法則用來實現將 JSON 資料轉換為 相應的 Java 對象。 2) toJson()方法,toJson()方法用於將 Java 對象轉換為相應的 JSON 資料,主要有以下幾種形式: String toJson(JsonElement jsonElement); String toJson(Object src); String toJson(Object src, Type typeOfSrc); 其中,方法(1.1)用於將 JsonElement 對象(可以是 JsonObject、JsonArray 等)轉換成 JSON 資料;方法(1.2)用於將指定的 Object 對象序列化成相應的 JSON 資料;方法(3)用於將指定 的 Object 對象(可以包括泛型型別)序列化成相應的 JSON 資料。 3) 1.2 fromJson()方法 fromJson()方法用於將 JSON 資料轉換為相應的 Java 對象,主要有以下幾種形式: (1)<T> T fromJson(JsonElement json, Class<T> classOfT); (2)<T> T fromJson(JsonElement json, Type typeOfT); (3)<T> T fromJson(JsonReader reader, Type typeOfT); (5)<T> T fromJson(Reader reader, Type typeOfT); (6)<T> T fromJson(String json, Class<T> classOfT); (7)<T> T fromJson(String json, Type typeOfT); 以上的方法用於將不同形式的 JSON 資料解析成 Java 對象。 所以說 gson 是一個很好的請求網路資料的架構,既可以在伺服器端產生一個 json 字串,然後 用戶端通過發送請求向伺服器端,進行資料解析。 5. Picasso 架構 這也是本課程中涉及的一個第三方的架構,它主要是用於網路請求圖片時的一種架構,它的 代碼量少,內建緩衝,是一個值得使用的架構。首先 Picasso 也是 Afinal 這個架構的一種, Afinal 是一個 android 的 ioc,orm 架構,內建了四大模組功能: FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過 finalActivity,我們可以通過註解的方式進 行綁定 ui 和事件。通過 finalBitmap,我們可以方便的載入 bitmap 圖片,而無需考慮 oom 等 問題。通過 finalDB 模組,我們一行代碼就可以對 android 的 sqlite 資料庫進行增刪改查。通過 FinalHttp 模組,我們可以以 ajax 形式請求 http 資料。
ExpandableListView 和 ExpandableListActivity
如何擷取 ExpandableListView對象
1.可以直接在xml布局中添加 ExpandableListView 在activity中通過id繫結控制項
2.activity 繼承 ExpandableListActivity 通過 getExpandableListView 方法擷取
ExpandableListView的常用屬性
android:groupIndicator="" 設定可向外延展群組表徵圖提示
點擊事件
//設定組點擊事件 // melv.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) { return false; } }); //設定字條目點擊事件 melv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView expandableListView, View view, int i, int i1, long l) { return false; } });
下面進入demo環節
1.實現手風琴效果 擷取本機資料
Android 手風琴效果實現