1

감지 된 비콘을 recyclerview에 표시하고 싶습니다. 지금까지 업데이트가 호출되면 새 항목을 만드는 것을 피할 수 있었지만 업데이트 할 거리 값을 가져올 수 없습니다. Android Beacon - 거리 업데이트 표시

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

좋은 질문입니다. 요소가 변경 될 때 RecyclerView를 강제로 새로 고치는 방법을 확신 할 수 없지만 이것이 핵심 질문입니다. 이 주제에 대한 전문가를 유치하기 위해 다른 태그를 추가 할 수 있습니다. – davidgyoung

답변

0

당신은 항상 사용할 수 있습니다

yourAdapterName.notifyDataSetChanged(); 

이 업데이트 된 데이터 목록을 새로 고쳐집니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 이미 BeaconAdapter에 다음을 설정했습니다 : 'public void clear() { this.beaconList = null; notifyDataSetChanged(); } public void addAll (리스트 비콘리스트) { this.beaconList = beaconList; notifyDataSetChanged(); }' 내가 제대로하고 있습니까? – fandomfox

+0

전체 데이터를 삭제할 때나 데이터 추가를 추가 할 때만 notifyDataSetChanged()를 호출하고 거리에 대한 업데이트를받지 않은 경우가 아니라고 생각합니다. 그것을 확인하고 싶을 수도 있습니다. –

+0

알겠지만, 어댑터까지 거리를두면 목록의 특정 항목을 어떻게 업데이트해야하는지 알 수 있습니까? – fandomfox