Можем ли мы написать MyLocationListener вне класса xxxActivity? - PullRequest
1 голос
/ 30 ноября 2011

Могу ли я написать MyLocationListener вне класса MainActivity?как следующий пример

MainActivity.class

public class MainActivity extends Activity{

    @Override
    ..onCreate(){
    .
    .
    loclis = new MyLocationListener(this); // Can i use it this way? 
    //if so, where is the best place to declare this line. 

    }
}

MyLocationListener.class

public class MyLocationListener implement LocationListener{
..
.//Constructor of MyLocationListener
}

Спасибо за васпомощь

1 Ответ

2 голосов
/ 30 ноября 2011

Да, вы можете объявить автономный класс в качестве слушателя местоположения. Однако, если вы это сделаете, вы, вероятно, захотите иметь механизм, позволяющий вашему слушателю перезвонить в вашу активность, если местоположение меняется (иначе ваша активность никогда не узнает, что вы получили обновление местоположения):

public class MyLocationListener implements LocationListner{

   private SomeInterface owner;

   public MyLocationListener(SomeInterface owner){
       this.owner = owner;
} 

}

Тогда ваша деятельность может выглядеть так:

public class MainActivity extends Activity implements SomeInterface{

    private LocationListner locListener;
    public void onCreate(Bundle savedInstanceState){
        locListener = new MyLocationListener(this);
    }

}
...