編輯:關於Android編程
正文
首先是最基礎的
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刷新問題的解決方法全部內容了,希望大家多多支持本站~
Android 自定義dialogfragment
在用dialogfragment的時候我們可能會不喜歡系統自帶的黑色邊框, @drawable/my_try_use_pay_dialog
Android逆向分析之Xposed的hook技術
Android逆向工程裡常用到的工具除了的dex2jar,jd-gui, Apktool之外還有一個Xposed。這個工具是一個在不修改APK的情況下,影響其運行過程的服
《Android Studio實用指南》4.27 使用演示模式
目前本書已上傳到百度閱讀, 在百度中搜索[Anroid Studio實用指南]便可以找到本書.什麼是演示模式?顧名思義,當你想給別人演示你的代碼時就會用到這個演示模式.演
Android實現沉浸式狀態欄
前段時間,項目中用到了沉浸式的狀態欄,在此記錄一下,代碼如下:package com.jackie.immersive; import android.os.Build