Как получить строковый ресурс из класса?

Хочу сделать локализацию, для этого нужно достать текст из ресурсов. Но как это сделать внутри класса без context'а?

enum class Tab(val id: Int, val title: String) {
    TODAY(0, "Today"), ALL(1, "All time");

    companion object {
        fun getById(id: Int) = values().first { v -> v.id == id }
    }
}

Ответы (1 шт):

Автор решения: Виктор Шамрук

Нашел решение здесь (для Java)

Создаем класс наследуясь от android.app.Application:

public class App extends Application {
   private static App instance;
   public static App get() { return instance; }

   @Override
   public void onCreate() {
      super.onCreate();
      instance = this;
   }
}

Затем идем в Manifest и в теге добавляем

android:name=".App"

В нужном классе перед getString() ставим App.get():

App.get().getString()

Для Kotlin можно так (в App):

companion object {
        lateinit var instance: App
            private set
}

override fun onCreate() {
        super.onCreate()
        instance = this
}

И потом в нужном месте:

App.instance.getString(R.string.Today)
→ Ссылка