powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Массив идентификаторов
6 сообщений из 6, страница 1 из 1
Массив идентификаторов
    #38506320
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем!

В проекте есть куча картинок-слайдов с названиями а-ля picture00, picture01, picture02 etc.
Можно ли как-то завести массив из их идентификаторов, чтобы не писать чудовищных условий, типа:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
switch (mNum) {
case 0: 
   mPicture = mRes.getDrawable(R.drawable.picture00);
   break;
case 1: 
   mPicture = mRes.getDrawable(R.drawable.picture01);
   break;
...
}

а вместо этого написать что-то подобное:
Код: java
1.
   mPicture = mRes.getDrawable(mID[mNum]);

?
Или может вообще есть какой-то более изящный выход?
...
Рейтинг: 0 / 0
Массив идентификаторов
    #38506409
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да можно
нашел какойто кусок у себя в проекте

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
private int getResIdByName(String name) {

		// Class res = R.id.class;
		Class res = R.drawable.class;
		try {
			Field field = res.getField(name);
			return field.getInt(null);
		}
		catch (Exception e) {
			// можно вывести принтстек
		}
		return 0;
}


****

int id_res = getResIdByName("picture" +number);

if (id_res > 0)
   mPicture = mRes.getDrawable(id_res);

***


	}
...
Рейтинг: 0 / 0
Массив идентификаторов
    #38506482
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибс,

Спасибо огромное! Работает!
Код: java
1.
2.
3.
4.
5.
private int mDrawableId[]; // Массив идентификаторов ресурсов
mDrawableId = new int[16];
for(int i = 0; i < 16; i++) {
      	mDrawableId[i] = getResIdByName("picture"+(i<10?"0":"")+i);
}


А вот это "picture"+(i<10?"0":"")+i можно как-то покрасивее закодить?
...
Рейтинг: 0 / 0
Массив идентификаторов
    #38506528
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
String formatted = String.format("%02d", 12);
formatted = String.format("%02d", 2);

так попробуй.
проверь
...
Рейтинг: 0 / 0
Массив идентификаторов
    #38506587
Sp999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибс,

Еще раз спасибо!

Сделал так:
Код: java
1.
2.
3.
...
mDrawableId[i] = getResIdByName(String.format("picture%02d", i));
...

Работает!
...
Рейтинг: 0 / 0
Массив идентификаторов
    #38506831
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это хорошо )
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Массив идентификаторов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]