Ich erstelle eine Android-App. Momentan ist die Position fest codiert. Die Längen- und Breitengrade werden in der oncreate-Methode angegeben. Ich habe eine Methode erstellt, um den Längen- und Breitengrad außerhalb der Oncreate-Methode zu erhalten.Übergeben von Variablen aus der Methode in eine andere Variable in der onCreate-Methode
Dies ist die oncreate Methode
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
getLocation();
//Doublin Co-ordinates
final double latitude = 53.3498;
final double longitude = -6.2603;
//Getting th data
getForecast(latitude, longitude);
Log.d(Tag,"MAIN UI code running");
}
Wie Sie die Lage der sehen in den latitude
und latitude
Variablen fest einprogrammiert ist.
Ich habe auch eine Methode erstellt, um die letzten bekannten Koordinaten des Telefons des Benutzers zu erhalten. Dies ist außerhalb der Oncreate-Methode.
void getLocation() {
if(ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
} else {
Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null){
double latti = location.getLatitude();
double longi = location.getLongitude();;
} else {
Toast.makeText(this, "Unable to get location. Please try again:", Toast.LENGTH_LONG).show();
}
}
}
Wie würde ich ordnen Sie die Werte von latti
und longi
in der Lage Methode, um longitude
und latitude
im oncreate
Verfahren.
Sie sollten diese beiden Variablen vor 'getLocation();', dann übergeben Sie diese beiden Variablen an 'getLocation' Funktion –
Sie Ich werde Probleme bekommen, weil man sich nicht auf 'getLastKnownLocation()' verlassen kann und sobald man tatsächlich Standortaktualisierungen verlangt - oder ein einzelnes Standortupdate - kann man 'getForecast() 'nicht mehr in' onCreate() 'aufrufen , weil das Laden des Standorts dann eine asynchrone Operation ist. Sie müssen es dann nur aufrufen, nachdem Sie den Standort erhalten haben. Die Antworten werden dich also ein wenig vorwärts bringen, aber nicht sehr weit. –
Bitte akzeptieren Sie eine der Lösung, die Ihnen helfen –