Почему бы не использовать бинарный поиск? Это всегда будет завершено после 5 операций (при условии, что размер int равен 4 байтам):
if (0x0000FFFF & value) {
if (0x000000FF & value) {
if (0x0000000F & value) {
if (0x00000003 & value) {
if (0x00000001 & value) {
return 1;
} else {
return 2;
}
} else {
if (0x0000004 & value) {
return 3;
} else {
return 4;
}
}
} else { ...
} else { ...
} else { ...
Используйте getResources (). getIdentifier ()
из вашего Context
(например, Activity
), но, пожалуйста, оставьте результат, если вы будете использовать это не один раз. getIdentifier ()
реализован на ресурсах
.
Например:
int drawableId = getResources (). getIdentifier («foo» + index, «drawable», getPackageName ());
вернет значение R.drawable.fooN
, где N
- это число, указанное индексом
.
Для получения дополнительной информации см. этот и этот и этот .