2012-05-31 3 views
0

У меня есть финальный стол:финального стола и добавить элементы в андроиде

final Item itemsList[] = new Item[]{ 
      new Item(R.drawable.per1,contacts.get(0).getName(),contacts.get(0).getTitle(), contacts.get(0).getPhone(),contacts.get(0).getTitle(),contacts.get(0).getEmail()) 

    }; 

И это моя проблема. Я хочу добавить к этой таблице несколько элементов. Элементы, которые я получаю из списка «контакты». И если у меня есть 10 элементов в списке «контакты», я хочу добавить в «itemList» 10 элементов, но я не могу этого сделать, потому что мой itemList является окончательным, и он должен быть окончательным, потому что мне это нужно. Как я могу добавить количество элементов в itemList динамически?

+0

В чем причина сделать это финал? Если вы хотите обновить его позже, тогда нет смысла делать его окончательным. – rizzz86

+0

Я добавляю эти данные в намерение: intent.putExtra ("my.header.id", itemsList [arg2] .name); где arg2 - количество выбранных элементов из списка. когда я удаляю final, я получаю ошибку – user1302569

+0

Зачем объявлять ее окончательной, если это не так? – Orlymee

ответ

1

Выполнение itemList[] final означает, что вы не можете изменить ссылку после ее инициализации, а не ее содержимого. Таким образом, если вы знаете количество элементов при инициализации itemList вы можете сделать это, как

int itemsCount = ...; 
final Item itemList[] = new Item[itemsCount]; 

, а затем установить его содержание как

for (int i = 0; i < itemsCount; i++) { 
    itemsList[i] = new Item(...); 
} 

Кроме того, как Jave предложил использовать List<> может быть более подходящим в ваш случай.

+0

Спасибо. Работа отлично – user1302569

2

Вы, вероятно, лучше просто используя List, если вам нужно добавить количество неизвестных единиц хранения:

final List<Item> myList = new ArrayList<Item>(); 
myList.add(new Item(...)); 
//add more Items 
Смежные вопросы