обновить глобальную переменную из LocationListener

#android #variables #global

#Android #переменные #глобальная

Вопрос:

Я создал класс, который содержит глобальные переменные:

 public class GlobalVar extends Application{

    private XData xData;

    public XData getxData ()     
    {         
        return xData;     
    }     

    public void setXdata  (XData Xdata)     
    {
        this.xData = xData;                
    } 
}
  

Когда я получаю доступ к этому классу с помощью (GlobalVar)getApplicationContext() действий моего приложения, все в порядке, но когда я хочу получить к нему доступ из другого класса (в данном случае его LocationListener ), я не могу использовать (GlobalVar)getApplicationContext()

Как я мог получить доступ к данным?

Ответ №1:

Вы должны реализовать шаблон Singleton в своем классе globalVar. На Android рекомендуется получать к ним прямой доступ без использования getter / setter (прочитайте руководство по производительности).

Вы также могли бы просто сделать свою переменную xData статической, и тогда вы сможете получить к ней доступ напрямую отовсюду.

Ответ №2:

Используя:

 Context.getApplicationContext()
  

Ответ №3:

Вы можете вызвать

 GlobalVar gv = (GlobalVar) getApplication()
  

из любого Activity в вашем коде.

Для получения дополнительной информации обратитесь к http://developer.android.com/reference/android/app/Activity.html#getApplication ()

Комментарии:

1. Это не activity, это класс, который реализует LocationListener.