看板 AndroidDev 關於我們 聯絡資訊
各位大德日安 小弟最近在做 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