Подтвердить что ты не робот

Resources.getSystem() vs getResources()

Я новичок в Android, и я сам изучаю SDK из доступных ресурсов через сеть.

Теперь я столкнулся с ситуацией. Я пробую код ниже:

Тип 1: getResources().getString(android.R.string.cancel);

Тип 2: Resources.getSystem().getString(android.R.string.cancel);

Тип 3: getString(android.R.string.cancel);

Все вышеперечисленные методы возвращают одинаковое значение. Итак, каковы эти методы, каковы их варианты использования. Каковы наилучшие методы использования этого метода. Пожалуйста, помогите мне.

4b9b3361

Ответ 1

Разница заключается не только в том, что вы получаете, но и в том, где вы можете их использовать.

Первый и третий используют "контекст". невидимо. Таким образом, очень часто (в статических членах или вне членов активности) вы не можете использовать их напрямую, если только вы не передаете контекст или ресурс как статическую переменную или как параметр в свою область действия. Но второй

Resources.getSystem().getString(android.R.string.cancel)

Вы можете использовать ABSOLUTELY EVERYWHERE в своем приложении даже в декларации статических констант! Но только для системных ресурсов

Ответ 2

Все 3 возвращают одно и то же значение, но Resources.getSystem() ссылается на системные ресурсы и может вызвать сбой если используется неправильно.

Рекомендуемое использование: "getString (android.R.string.cancel);"

Он также используется как таковой в код WalkieTalkieActivity.java на веб-сайте разработчика Android.

Ответ 3

Эти три метода одинаковы. Ниже приведен корневой метод: getApplicationContext().getResource().getString("") и здесь используется метод быстрого доступа: getString("") Используйте метод ярлыков при обработке контекста приложений. В почти каждом случае мы используем getString() для получения строк, определенных в файле String.