Мое программное обеспечение включает в себя много изменений изображений. Вместо того, чтобы многократно искать номер ресурса, я хотел бы создать некоторые константы для представления каждой ссылки на изображение. Вот мои попытки до сих пор:
Эта попытка приводит к принудительному закрытию при запуске.
private final int EMPTY = getResources().getIdentifier("dotted_circle", "resId", "en.deco.android.livehud");
@Override
public void onCreate(Bundle savedInstanceState)
{
.....
}
Эта попытка возвращает ошибку "невозможно инициализировать конечные переменные". Удаление final позволяет ему работать.
private final int EMPTY
@Override
public void onCreate(Bundle savedInstanceState)
{
EMPTY = getResources().getIdentifier("dotted_circle", "resId", "en.deco.android.livehud");
}
Является ли использование констант здесь хорошей идеей?
final
должны быть установлены к моменту создания вашего объекта, поэтому вы должны установить их в конструкторе. Вы не можете сделать это в объявлении, так как ваш объект еще не готов, плюс методы могут генерировать исключения, которые вы никогда не заметите. - person Marcelo   schedule 04.02.2012