Как использовать обновленные данные местоположения GPS в основной активности Android? - PullRequest
0 голосов
/ 27 июля 2011

Я погуглил много вопросов и форумов и не смог найти ответ, поэтому я надеюсь, что этот вопрос не повторится. Если это так, пожалуйста, направьте меня к основному вопросу.

Хорошо, дело в том, что я не знаю, как обновить местоположение GPS в Android, а затем фактически использовать это значение в основной деятельности. Итак, у меня есть макет, состоящий из двух TextView, один для отображения широты, а другой для отображения широты. Я установил один LocationManager, LocationListener (для обновления местоположения), а затем я вызываю requestLocationUpdates () в моем LocationManager, как указано в этом руководстве http://www.firstdroid.com/2010/04/29/android-development-using-gps-to-get-current-location-2/

Я использую те же методы onCreate и LocationListener, что и в уроке выше. Как вы можете видеть, onLocationChanged () делает тост в этом уроке, но я хотел бы изменить текст моих TextViews. Не могли бы вы показать мне, как я могу использовать значения из getLongitude () (и аналогичные методы) в моей основной деятельности.

public void onLocationChanged(Location loc)

{

loc.getLatitude();

loc.getLongitude();

String Text = “My current location is: “ +

“Latitud = “ + loc.getLatitude() +

“Longitud = “ + loc.getLongitude();

Toast.makeText( getApplicationContext(),

Text,

Toast.LENGTH_SHORT).show();

}

Ответы [ 2 ]

0 голосов
/ 28 марта 2012

из вашего основного действия передайте текстовое представление в конструктор MyLocationListener (ссылаясь на используемый вами учебник). Так что в основном вы должны определить конструктор в MyLocationListener

public class MyLocationListener implements LocationListener {
   Context context;
   TextView tv;      

   public MyLocationListener(Context context,TextView tv){
    this.context=context;
    this.tv=tv;
   }

  public void onLocationChanged(Location loc) {
      tv.setText("your text comes here");
  }      


} 

и по основному виду деятельности

TextView tv = (TextView) findViewById(R.id.yourTextViewId);
LocationListener mlocListener = new MyLocationListener(getApplicationContext(),tv);
0 голосов
/ 21 октября 2011

в вашей основной деятельности, после onCreate и setContentView вам нужно

EditText lat = new EditText findViewById(R.id.lat_view);
EditText lon = new EditText findViewById(R.id.lon_view);

(или как ваши латинские текстовые представления называются в xml)

и затем в вашем onLocationChanged добавьте

lat.setText(loc.getLatitude);
lon.setText(loc.getLongitude);

вам может понадобиться сделать EditText s статичным, я не перед затмением.

...