[問題] ListView更新

作者: 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:00
listview.setAdapter(adapter); 這行
作者: LUB5566 (理由伯)   2014-08-07 14:32:00
感謝兩位,我拿掉以後進步到變成只要一指滑動就會顯示了…請問這是因為我重複設定listview導致的失誤嗎?我預想是能夠直接顯示…
作者: passli   2014-08-07 14:40:00
runOnUiThread 裡 adapter.notifyDataSetChanged(); 要留
作者: normaler (㊣天才㊣)   2014-08-10 14:33:00
setAdapter搬到init flow, 之後資料有變動只要call noti

Links booklink

Contact Us: admin [ a t ] ucptt.com