I want to be able to get the current coordinates using only GPS.
At the moment my code gets the coordinates once and then uses them over again once they have been stored. I'm looking for the solution on how to modify the code so that when the button is clicked it gets the current coordinates.
Here's the code:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Setting TextViews for the coordinates
startLatitudeField = (TextView) findViewById(R.id.TextView02);
startLongitudeField = (TextView) findViewById(R.id.TextView04);
endLatitudeField = (TextView) findViewById(R.id.textView06);
endLongitudeField = (TextView) findViewById(R.id.textView08);
//Button
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
//find out how to get the current location using gps
//not what is stored
if (startLat != 0) {
onLocationChanged(location);
} else {
onLocationChanged(location);
Button button = (Button) findViewById(R.id.button1);
button.setText("Get me home");
}
}
});
};
@Override
public void onLocationChanged(Location location) {
if (startLat == 0) {
startLat = (double) (location.getLatitude());
startLng = (double) (location.getLongitude());
startLatitudeField.setText(String.valueOf(startLat));
startLongitudeField.setText(String.valueOf(startLng));
}
else {
endLat = (double) (location.getLatitude());
endLng = (double) (location.getLongitude());
endLatitudeField.setText(String.valueOf(endLat));
endLongitudeField.setText(String.valueOf(endLng));
}
}