Следующий вопрос SO how-can-i-assign-an-id-to-a-view-programmatically объясняет, как программно установить id в представления. Моя проблема несколько отличается. Я хотел бы знать, можно ли программным образом задавать имя ресурса id/name для массивов.Как я могу присвоить id программно созданному массиву в android?
ArrayList<String> new_list = new ArrayList<>();
String [] stringArray = {"foo", "bar"};
for(String str:stringArray) {
new_list.add(str);
}
/* This is a random example of doing things I
* certainly have more complex computation
* add more random item and convert it back to array
*/
new_list.add("random_1");
new_list.add("random_n");
String [] updatedArray = new String[new_list.size()];
updatedArray = new_list.toArray(updatedArray);
Resource ID определяется как
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="reservedNamedId" type="id"/>
</resources>
Теперь я хочу сделать что-то вроде этого
updatedArray.setID(R.id.reservedNamedId);
Но , которая не компилируется поскольку массив не имеет метод setID, такой как класс Views.
Я понимаю, что если мой массив строк определен в xml, я мог бы использовать атрибут name для доступа к нему по всему миру, но то, что я хочу, - это программно создать массив и назначить глобальное имя/id. Поэтому основной целью было определить ресурс массива и сделать его доступным глобально через идентификатор ресурса. Является ли это возможным? Возможно ли это каким-то другим способом?
'// не разрешено, так как массив не имеет метода setID'. Это путаное описание. Лучше: 'то не компилируется'. – greenapps
Я не думаю, что это возможно, что вы пытаетесь сделать. этот идентификатор ресурса в основном используется для динамического назначения компонентов идентификатора. –
@greenapps thanks обновил сообщение – jazaman