#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.