我需要刷新我的listview没有清除和闪烁,只是显示新的项目。但我不能一次就这么做,因为我需要在几秒钟内异步获取项目。由于在过程开始时清除了适配器,所以此代码不能正常工作。
private void scanLeDevice(final boolean enable) {
if (enable) {
mLeDeviceListAdapterNew.clear();
//mLeDeviceListAdapterNew.notifyDataSetChanged();
// Stops scanning after a pre-defined scan period.
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mScanning = false;
mBluetoothAdapter.stopLeScan(mLeScanCallback);
runOnUiThread(new Runnable(){
@Override
public void run() {
mLeDeviceListAdapterNew.notifyDataSetChanged();
scanLeDevice(true);
//invalidateOptionsMenu();
}
});
}
}, SCAN_PERIOD);
//Here my adapter updates with new items,
//but it's shouldn't be displayed until I call adapter
//refresh data in SCAN_PERIOD
2条答案
按热度按时间mwecs4sa1#
你可以打电话
notifyDataSetChanged();
在设置适配器以反映对列表的更改之后。例如希望这能有所帮助。
nzk0hqpo2#
您需要在适配器中使用setdata方法来更新数据。之前打过电话
notiftyDataSetChanged
.公共类myadapter扩展baseadapter{
}