В общем случае, когда вы находитесь в контексте Activity, это выглядит так:
1 |
resources().getString(R.string.my_string_name); |
При этом вызов getResources() в этом контексте и необязателен, т.е. работает и так:
1 |
getString(R.string.my_string_name); |
Если вы находитесь вне контекста Activity, то можно получить контекст приложения и через него уже выполнить метод getString().
Чтобы контекст приложения всегда был «под рукой», прибегают к следующему лайф-хаку: расширяют класс Application и сохраняют ссылку на контекст. После запуска приложения, переменная оказывается рассчитана и всегда доступна для других классов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class App extends Application { private static Context mContext; @Override public void onCreate() { super.onCreate(); mContext = this; } public static Context getContext(){ return mContext; } } |
Тогда в вашем классе, где нет соответствующего контекста вы можете получить контекст приложения через App:
1 |
App.getContext().getString(R.string.my_string_name); |