Моят софтуер включва много смяна на изображения. Вместо да търся многократно номера на ресурса, бих искал да създам някои константи, които да представят всяка препратка към изображение. Ето моите опити до момента:
Този опит предизвиква принудително затваряне при стартиране.
private final int EMPTY = getResources().getIdentifier("dotted_circle", "resId", "en.deco.android.livehud");
@Override
public void onCreate(Bundle savedInstanceState)
{
.....
}
Този опит връща грешка „крайните променливи може да не са инициализирани“. Премахването на финала му позволява да работи.
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