У меня есть класс GetMyLocation, который получает текущее местоположение пользователя. Теперь я пытаюсь вызвать объект этого класса из другого класса, ShowMap2. Но я не могу отправить обновленное местоположение в новый класс.
Я не включил здесь другие переопределения для GetMyLocation.
Что я имею:
public class ShowMap2 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_showmap);
GetMyLocation myLocation = new GetMyLocation();
myLat = myLocation.GetCurrentLat();
myLon = myLocation.GetCurrentLon();
}
Это класс, который получает местоположение:
public class GetMyLocation extends Activity implements LocationListener {
protected LocationManager locationManager;
protected LocationListener locationListener;
Location location;
public static double myLat, myLon;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);
this.myLat = location.getLatitude();
this.myLon = location.getLongitude();
}
public double GetCurrentLat(){
return this.myLat;
}
public double GetCurrentLon(){
return this.myLon;
}
Приведенный выше код возвращает 0,0 для широты и долготы.
Я пробовал все возможные способы, которые только мог придумать, но всегда получаю 0.0. Я знаю, что сам класс получает мои текущие широту и долготу, но я не могу правильно его передать. Не могли бы некоторые, пожалуйста, помочь мне здесь?
Спасибо.
PS:
Я нашел эту ветку и попробовал ее соответственно, но безрезультатно. Еще нули.
Как получить доступ к этой переменной из метода Android onCreate?< /а>
Единственное отличие, в вопросе по ссылке класс статический. Когда я делаю свой класс статическим, он говорит: Модификатор «статический» здесь не разрешен.
Мой обновленный код:
public class GetMyLocation extends Activity implements LocationListener {
protected LocationManager locationManager;
protected LocationListener locationListener;
Location location;
static double myLat, myLon;
double GetCurrentLat(){
return myLat;
}
double GetCurrentLon(){
return myLon;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);
this.myLat = location.getLongitude();
this.myLon = location.getLongitude();
}
РЕДАКТИРОВАТЬ: обновленный код, который работает:
public class GetMyLocation implements LocationListener {
//public class GetMyLocation extends Activity implements LocationListener {
private static final LatLng HAMBURG = new LatLng(43.48484521,-80.5274279);
private GoogleMap map;
protected LocationManager locationManager;
protected LocationListener locationListener;
Location location;
private static double myLat, myLon;
GetMyLocation(Activity activity){
locationManager = (LocationManager) activity.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
location = locationManager.getLastKnownLocation(locationManager.GPS_PROVIDER);
this.myLat = location.getLatitude();
this.myLon = location.getLongitude();
}
double GetCurrentLat(){
return this.myLat;
}
double GetCurrentLon(){
return this.myLon;
}
получение значений местоположения из ShowMap2 с помощью:
GetMyLocation myLocation = new GetMyLocation(this);
GetMyLocation myLocation = new GetMyLocation();
не вызывает для него методы `onCreate(Bundle saveInstanceState);' Вам нужно научиться создавать новую активность - person Scary Wombat   schedule 27.02.2015