我想在recyclerview中显示检测到的信标。到目前为止,我已经能够避免在调用更新范围后创建新项目,但我无法更新距离值。
beaconManager.addRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
final BeaconAdapter adapter = (BeaconAdapter) recyclerView.getAdapter();
for(Beacon beacon : beacons) {
if(!beaconList.contains(beacon)) {
beaconList.add(beacon);
}
}
runOnUiThread(new Runnable() {
@Override
public void run() {
adapter.clear();
adapter.addAll(beaconList);
}
});
}
});
这是我在BeaconAdapter中的代码
public void clear(){
this.beaconList = null;
notifyDataSetChanged();
}
public void addAll(List<Beacon> beaconList){
this.beaconList = beaconList;
notifyDataSetChanged();
}
我应该如何正确显示信标,以便我没有获得多余的项目,但仍能获得距离和其他值的更新?
答案 0 :(得分:0)
您可以随时使用:
yourAdapterName.notifyDataSetChanged();
这将使用更新的数据刷新列表。