can i save context in a variable?

Issue

how can I save the main activity context in a variable to use it in a function of another class? is there a specific method i can use?

I have a class that contains the functions that I would like to use in my main_activity, one of the functions, within the routePath function, which I report below (line 2), requires that the context be passed as a parameter to draw the path on the map, that I would like to know is how can I pass the context when the function is called in the main_activity.
I thought it was possible to save the main activity context in a variable and then retrieve it in the second class.
I can share the whole code if needed.

fun routePath(p1Latit: Double, p1Laong: Double, p2Latit: Double, p2Laong: Double){
        println("inizio")
        val roadManager: RoadManager = OSRMRoadManager(context, "lolloMaps")
        OSRMRoadManager.MEAN_BY_FOOT
        println("passo1 - creoArrayList")
        val waypoints = arrayListOf<GeoPoint>()
        println("passo2 - CreoPuntiEAggiungoInArrayList")
        val startPoint: GeoPoint = GeoPoint(p1Latit, p1Laong) //43.12628, 12.04705
        waypoints.add(startPoint)
        val endPoint: GeoPoint = GeoPoint(p2Latit, p2Laong) //43.12124, 11.97211
        waypoints.add(endPoint)
        println("passo3 - CreoStrada")
        road = roadManager.getRoad(waypoints)
        if (road.mStatus != Road.STATUS_OK){
            Toast.makeText(context, "Errore nel caricamento di road - status = " + road.mStatus, Toast.LENGTH_SHORT).show()
        }
        println("passo4 - CreoPolilinea")
        val roadOverlay: Polyline = RoadManager.buildRoadOverlay(road)
        println("passo5 - AggiungoPolilineaAllaMappa")
        mapView.overlays.add(roadOverlay)
        mapView.invalidate()

I think i should correct the last two lines as well as mapView has been declared in main_Activity, is that right?

Solution

I solved it by passing to the class that contains the function both the context and the mapView as constructor parameters

Answered By – George Jung

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published