@nohchiadam

Как перебрать ресурсы с помощью цикла?

Моя задача заполнить RecylerView .

for (int i = 0; i < 11; i++) {
                switch (i) {
                    case 1:
                        items.add(new Send( R.string.adamt1));
                        break;
                    case 2:
                        items.add(new Send2( R.string.adama1,R.string.adama1t));
                        break;
                    case 3:
                        items.add(new Send(R.string.adam2));
                        break;
                    case 4:
                        items.add(new Send2( R.string.adama2,R.string.adama2t));
                        break;
                    case 5:
                        items.add(new Send( R.string.adamt3));
                        break;
                    case 6:
                        items.add(new Send2( R.string.adamta3,R.string.adamta3t));
                        break;


и так около 30 items.

Имя strings различается только цифрой.
Можно ли как то прокрутить все это через цикл?Чтобы не писать много кода?
И как это сделать?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Упихай ресурсы в массив, читай циклом.
<resources>  
<string-array name="myStringsArray">  
    <item>adamt1</item>  
    <item>adama1</item>  
    <item>adama1t</item>  
    <item>adam2</item>  
    <item>adama2</item>
    <item>adama2t</item>
</string-array>


....
String[] myStringsArray= getResources().getStringArray(R.array.myStringsArray);
for (int i = 0; i < 11; i+=3) {
             items.add(new Send( myStringsArray[i]));
             items.add(new Send2( myStringsArray[i+1],myStringsArray[i+2]));
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Resources resources = context.getResources();
for (int i = 1; i <= 30; i++) {
    int resId = resources.getIdentifier("adamt" + i, "string", context.getPackageName());
}

Но не уверен, что это наиболее подходящее решение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы