融雲 IM SDK 集成 --- 刷新會話界面和會話列表界面
最近集成融雲 IMkit 發現, 融雲 IMkit 提供的 ConversationListFragment 和 ConversationFragment 都沒有提供刷新方法.
我們有個需求是, 使用 Message 的 extra 修改值後, 但是界面沒有進行刷新, 需要自己調用代碼進行刷新, 但是, 融雲沒有提供對應的刷新界面的方法, 所以只能看代碼.
刷新 ListView 是需要獲取 Adapter , 然後使用 Adapter 進行刷新, 但是我們無法從 ConversationListFragment 中直接獲取, 那怎麼辦呢?
我們知道, ListView 中有 getAdapter 的方法. 那我們能不能先獲取 ListView 控件呢? 答案是可以的. 我們通過 findById 方法即可獲取 ListView. 通過查找, 我們可以知道, 融雲會話列表的 listView 的 id 爲 R.id.rc_list.
所以代碼如下.
ListView mList = (ListView)findViewById(R.id.rc_list);
HeaderViewListAdapter adapter = (HeaderViewListAdapter)mList.getAdapter();
ConversationListAdapter wrappedAdapter = (ConversationListAdapter)adapter.getWrappedAdapter();
if (adapter != null) {
wrappedAdapter.notifyDataSetChanged();
}