Android, как динамически заполнять массив CharSequence (не инициализировать?)
Как мне изменить что-то вроде этого:
CharSequence cs[] = { "foo", "bar" };
в
CharSequence cs[];
cs.add("foo"); // this is wrong...
cs.add("bar"); // this is wrong...
Ответы
Ответ 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 вместо необработанных массивов, так как нужно динамически добавлять элементы.