作者LUB5566 (理由伯)
看板AndroidDev
標題[問題] ListView更新
時間Thu Aug 7 11:35:02 2014
各位大德日安
小弟最近在做 Android BLE
抓取設備端資料後傳輸到ListView顯示
(setCharacterisicNotification)
顯示的程式碼如下
adapter.add(result);
runOnUiThread(new Runnable(){
public void run(){
adapter.notifyDataSetChanged();
listview.setAdapter(adapter);
listview.refreshDrawableState();
};
});
資料可以正確接受
但是出現神奇的事情= =
東西傳到listview以後整個listview會消失
測試以後發現只要用手觸控
做出縮小的手勢(兩指碰觸接近)就會出現
我又沒有寫這些東西……
我想應該是listview更新的問題
另外我測試過如果只有傳送簡單的值
如 adapter. add("aaa");
則不會有這個問題,希望大德們能指點迷津
-----
Sent from JPTT on my Samsung GT-I9300.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.71.161.168
※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1407382505.A.18E.html
→ passli:adapter設定過一次就好,不需要重新在設定一次 08/07 12:32
→ LUB5566:請問是指listview.refreshDrawableState()這行嗎? 08/07 13:26
推 LiHowDie:listview.setAdapter(adapter); 這行 08/07 13:53
→ LUB5566:感謝兩位,我拿掉以後進步到變成只要一指滑動就會顯示了 08/07 14:32
→ LUB5566:… 08/07 14:32
→ LUB5566:請問這是因為我重複設定listview導致的失誤嗎?我預想是 08/07 14:33
→ LUB5566:能夠直接顯示… 08/07 14:33
→ passli:runOnUiThread 裡 adapter.notifyDataSetChanged(); 要留 08/07 14:40
推 normaler: setAdapter搬到init flow, 之後資料有變動只要call noti 08/10 14:33