Подтвердить что ты не робот

Android, как динамически заполнять массив CharSequence (не инициализировать?)

Как мне изменить что-то вроде этого:

CharSequence cs[] = { "foo", "bar" };

в

CharSequence cs[];

cs.add("foo"); // this is wrong...
cs.add("bar"); // this is wrong...
4b9b3361

Ответ 1

Используйте объект List для управления элементами, и когда все элементы будут преобразованы в CharSequence. Что-то вроде этого:

List<String> listItems = new ArrayList<String>();

listItems.add("Item1");
listItems.add("Item2");
listItems.add("Item3");

final CharSequence[] charSequenceItems = listItems.toArray(new CharSequence[listItems.size()]);

Ответ 2

Вы также можете использовать List, чтобы иметь динамическое число членов в массиве (список:)):

List<CharSequence>  cs = new ArrayList<CharSequence>();

cs.add("foo"); 
cs.add("bar"); 

Если вы хотите использовать массив, вы можете сделать:

CharSequence cs[];

cs = new String[2];

cs[0] = "foo"; 
cs[1] = "bar"; 

Ответ 3

Ты почти там. Вам нужно выделить место для записей, которое автоматически выполняется для вас в случае инициализации выше.

CharSequence cs[];

cs = new String[2];

cs[0] = "foo"; 
cs[1] = "bar"; 

Фактически CharSequence является интерфейсом и поэтому не может быть непосредственно создан, но String как одна из его реализаций может.

Ответ 4

Если вы хотите, чтобы он был динамичным, вы должны подумать об этом в другой структуре и затем преобразовать его в CharSequence, когда вам нужно. Альтернативно, этот поток может быть полезен.

Ответ 5

Вы можете использовать ArrayList вместо необработанных массивов, так как нужно динамически добавлять элементы.