国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 關于ExpandableListView刷新問題的解決方法

2019-12-12 04:18:09
字體:
來源:轉載
供稿:網友

正文

首先是最基礎的

ExpandableListView vList = (ExpandableListView) this.findViewById(R.id.list);EListAdapter adapter = new EListAdapter(getApplicationContext(), list); //list 是數據源vList.setAdapter(adapter);//適配器就不寫了, 都懂的class EListAdapter extends BaseExpandableListAdapter {}

一般情況下, ListView是使用notifyDataSetChanged() 更新的

adapter.notifyDataSetChanged();

ExpandableListView 也是ListView, 估計這樣是可以的.
 
可惜現在用的不是ListView, 而是ExpandableListView! 所以報錯了0. 0

Java.lang.ClassCastException: Android.widget.ExpandableListConnector

在Google 找了資料, 發現是很多都犯這個錯誤. 解決方法也蠻簡單的!

class EListAdapter extends BaseExpandableListAdapter {  public EListAdapter(Context context, List<T> list) {    this.list = list;    this.context = context;    handler = new Handler(){      @Override      public void handleMessage(Message msg) {       notifyDataSetChanged();       super.handleMessage(msg);      }    };  }    public void refresh() {    handler.sendMessage(new Message());  }}

只要我們調用refresh() 方法就可以使用notifyDataSetChanged() 了.

可是!! 只有GroupView 更新!!

ChildView 沒有更新! 慘了....要更新的在ChildView!!

繼續靠Google 娘! 大家都提供很多方法, 有一個人說, 直接在list 添加item 再更新就可以了!

我試了一下,沒有任何效果.......

查了一查SDK 文檔, 發現Group 的伸縮會引起getChildView(int, int, boolean, View, ViewGroup)  的運行!

所以刷新的ChildView 的方法很簡單.

只有伸縮一次就可以了! 連Adapter 都不用重寫! 簡單吧?

vList.collapseGroup(groupPosition);vList.expandGroup(groupPosition);

以上就是小編為大家帶來的Android 關于ExpandableListView刷新問題的解決方法全部內容了,希望大家多多支持武林網~

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永丰县| 塘沽区| 肥东县| 江山市| 衡阳市| 长垣县| 乡城县| 阿克苏市| 武夷山市| 兰考县| 上高县| 广德县| 邵阳县| 桦甸市| 晋州市| 广安市| 天峻县| 嘉善县| 西藏| 溆浦县| 乡宁县| 达日县| 抚松县| 德化县| 稻城县| 贵港市| 凤冈县| 乳山市| 龙南县| 宜阳县| 平泉县| 五家渠市| 安宁市| 安乡县| 思南县| 桃园县| 元朗区| 阳朔县| 江安县| 江安县| 集贤县|