Android Beacon - 显示距离更新

时间:2017-09-28 06:51:03

标签: android android-recyclerview recycler-adapter ibeacon-android

我想在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();
}

我应该如何正确显示信标,以便我没有获得多余的项目,但仍能获得距离和其他值的更新?

1 个答案:

答案 0 :(得分:0)

您可以随时使用:

yourAdapterName.notifyDataSetChanged();

这将使用更新的数据刷新列表。