Пишу приложение на Android Studio. Через код по нажатию кнопки добавляются дополнительные поля к посту.
В цикле получаю значения с динамически добавленных полей. Вопрос: как занести все поля в переменную, чтобы в дальнейшем её использовать?
String[] items = new String[allEds.size()];
//запускаем чтение всех елементов этого списка и запись в массив
for (int i = 0; i < allEds.size(); i++) {
String strNamePers = (items[i] = ((EditText) allEds.get(i).findViewById(R.id.perona1)).getText().toString());
String strNameVoz = (items[i] = ((EditText) allEds.get(i).findViewById(R.id.peronavoz2)).getText().toString());
String strNameTreb = (items[i] = ((EditText) allEds.get(i).findViewById(R.id.peronatreb3)).getText().toString());
String strNameInt = (items[i] = ((EditText) allEds.get(i).findViewById(R.id.peronasumm4)).getText().toString());
String hr="<hr>";
String br = "<br>";
fnlstr = (br +"название персонажа: " + strNamePers + br+"возраст: "+strNameVoz+br+"требования к типажу: "+strNameTreb+br+"Сумма оплаты"+strNameInt+br+hr);
Log.d("mylog", "масив с полей " + fnlstr);
}
Проблема в том, что в переменной fnlstr
хранится значение только последней итерации цикла. Как сделать, чтобы все итерации сложились в одну строку и занеслись в переменную fnlstr
?
Если нужно соединить (конкатенировать) все полученные строки в одну, то делается это через оператор +
(+=
):
fnlstr += (br +"название персонажа: " + strNamePers + br+"возраст: "+strNameVoz+br+"требования к типажу: "+strNameTreb+br+"Сумма оплаты"+strNameInt+br+hr);
Если до цикла fnlstr
не инициализирована, то нужно это сделать.
fnlstr = "";
for...
К сожалению, конкатенация строк в цикле подобным образом неэффективна, т.к. на каждой итерации создается новая, более длинная строка. Поэтому когда нужно сложить строки в цикле используется StringBuilder.
StringBuilder fnlstrBuilder = new StringBuilder();
for (int i = 0; i < allEds.size(); i++) {
//пропущен не имеющий отношения к делу код
fnlstrBuilder.append(br +"название персонажа: " + strNamePers + br+"возраст: "+strNameVoz+br+"требования к типажу: "+strNameTreb+br+"Сумма оплаты"+strNameInt+br+hr);
}
После цикла можно получить строку с помощью toString
:
fnlstr = fnlstrBuilder.toString();
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне необходимо выделить строку в таблице и затем "заблокировать" выделение и редактирование других строк до определенного действияКак это...
В TableView использую ObservableList<Product> productListЧтобы изменить необходимые данные- использую объект из коллекции, но после сохранения ничего не изменяется...
Нашёл пример для работы с скриптами в Java здесьСоздал свой класс Note, создал экземпляр, положил его в engine, запускаю его метод getTitle и получаю...
Суть вопроса в следующемНа сайте есть sidebar (выезжающее справа меню), анимация которого построена на css-transitions