Как установить текст TextView из другого класса?

1

Я пытаюсь установить текст 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?

Благодарю!

  • 1
    Сделайте ваш класс LocationListener inner классом вашей ListActivity .
  • 0
    Даже не знал, что это был вариант. Благодарю.
Показать ещё 1 комментарий
Теги:

1 ответ

1
Лучший ответ

У нас есть 2 варианта.

один точно так же, как сказал Мистер Сквинк. сохраняя слушателя местоположения как внутренний класс, а другой - передать объект textView конструктору mylocationlistener. Не забывайте обрабатывать нулевое предложение на втором шаге.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню