作者:
LUB5566 (理由伯)
2014-08-07 11:35:02各位大德日安
小弟最近在做 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");
則不會有這個問題,希望大德們能指點迷津
作者: passli 2014-08-07 12:32:00
adapter設定過一次就好,不需要重新在設定一次
作者:
LUB5566 (理由伯)
2014-08-07 13:26:00請問是指listview.refreshDrawableState()這行嗎?
作者:
LiHowDie (我要堅強 我可以)
2014-08-07 13:53:00listview.setAdapter(adapter); 這行
作者:
LUB5566 (理由伯)
2014-08-07 14:32:00感謝兩位,我拿掉以後進步到變成只要一指滑動就會顯示了…請問這是因為我重複設定listview導致的失誤嗎?我預想是能夠直接顯示…
作者: passli 2014-08-07 14:40:00
runOnUiThread 裡 adapter.notifyDataSetChanged(); 要留
setAdapter搬到init flow, 之後資料有變動只要call noti