Как получить доступ к строке из string.xml, когда мы находимся в классе, отличном от основного класса?

Для доступа к строке в главном классе getString() метод работает очень хорошо. но что если мы создали другой класс и нам нужен доступ к строкам? Я старался Resources.getSystem().getString(R.string.m1); но это не сработало и привело к падению приложения. любое предложение? благодарю вас.

4 ответа

Вы можете сделать это так:

String m1 = this.getResources().getString(R.string.m1);

Если класс является Context, используйте getResources(), Если это не так, то вам нужно передать ему экземпляр Resources от одного из ваших Contexts. Resources.getSystem() возвращает объект ресурсов для системы Android, поэтому у него есть ресурсы Android, а не ваши.

Есть много способов сделать это, я скажу вам мой.

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

Используя context переменная, вы можете получить ресурсы, как это:

context.getResources().getString(R.string.my_string);

getString() это метод Context класс, поэтому вам нужно передать контекст (например, объект Activity) в другой класс. Чем вы можете позвонить contextObj.getString(),

См. Документацию класса Context для получения дополнительной информации.

"Быстрое и грязное" решение может представлять собой статическую переменную Context, в которой вы можете назначить основной объект Activity во время запуска, но я не предлагаю такой способ.

Другие вопросы по тегам