1

Uygulamamın, İnternet üzerinden aktarılan verileri kullanarak haritadaki uçakları izlemesi gerekiyor. Verileri almak için bir Hizmet kullanıyorum ve daha sonra Messengers'ı, kendi SupportMapFragment (MainMapFragment) ve ayrıca bir RecyclerView Fragment (AircraftListFragment) parçam olan Fragmanı olan (ve thanks to this guide) ana iletilerimi iletmek için kullanıyorum.Bir Google Map’in Marker'in konumunu bir soketten aktarılan verileri kullanarak nasıl güncellerim?

Her Marker, bir MainMapFragment içinde bir Aircraft nesnesi ile bir HashMap içinde ve AirActivity tarafından Aircraft nesneleri korunur. Benim MapFragmentimi güncellemek için benim Faaliyetim için notifyDatasetChanged() gibi bir şey var mı? Açıkçası ben böyle MainMapFragment bir yöntem yazamıyor: Duyduğum kadarıyla o değil I EventBus duymuştum

class IncomingHandler extends android.os.Handler { 
    @Override 
    public void handleMessage(Message msg){ 
     String aircraftMsg = msg.getData().getString("fromSocket"); 
     Aircraft newAircraft = decodeSbsMessage(aircraftMsg); 
     aircraftArrayList = searchThroughArrayListForAircraft(newAircraft); 
     MainMapFragment.updateAircraftArrayList(aircraftArrayList); 
    } 
} 

ama:

public void updateAircraftArrayList(ArrayList<Aircraft> updatedAircrafts){ 
    this.aircraftArrayList = updatedAircrafts; 
    updateMarkers(); //Update the Markers on the map 
} 

benim MainActivity böyle erişilen Bir Soketten sabit bir akışı yönetmek için çok iyi.

cevap

1

Sen MainActivity gelen yöntemini updateAircraftArrayList çağırabilirsiniz: Ben bu kayıp için şu anda kendime gülüyorum

your_instance_of_MainMapFragment.updateAircraftArrayList(aircraftArrayList) 
+0

bu sorun son birkaç gündür benim beyin raf oldu. Yardım ettiğin için teşekkür ederim! – CiaranC94

+0

Rica ederim. Bana da oldu :) – ozo

+0

Sorununuzu çözdüyse, bunu bir cevap olarak kabul edebilirsiniz. – ozo