Я пытаюсь установить текст textview, когда изменяется местоположение пользователя. Весь код для части GPS работает. Я тестировал с помощью Log();
Теперь вместо использования журнала я хочу отобразить ту же информацию в основном макете, но событие LocationChanged находится в другом классе, поэтому у меня нет доступа к макету.
public class mylocationlistener implements LocationListener
{
@Override
public void onLocationChanged(Location location)
{
if (location != null)
{
Log.v("kjdv", location.getLatitude() + ", " + location.getLongitude());
//I would like to set a textview here, but don't have access to the object
}
}
Этот класс создается здесь:
public class gps extends ListActivity implements View.OnClickListener
{
@Override
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main);
SetupLocationListener();
}
public void SetupLocationListener()
{
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener ll = new mylocationlistener(this);
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
}
Итак, как из класса myLocationListener я могу установить текст в событии onLocationChanged?
Благодарю!
У нас есть 2 варианта.
один точно так же, как сказал Мистер Сквинк. сохраняя слушателя местоположения как внутренний класс, а другой - передать объект textView конструктору mylocationlistener. Не забывайте обрабатывать нулевое предложение на втором шаге.
LocationListener
inner
классом вашейListActivity
.