Как добавить новый элемент по нажатию на UI Button

Графический интерфейс пользователя

Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 13 июн 2022, 18:23

Здравствуйте всем! Столкнулся со следующей проблемой, создаю что то наподобие примитивных заметок, для этого использую inputfield чтобы принимать ввод от пользователя, UI Button чтобы при нажатии на кнопку введенный текст пользователем сохранялся в поле Text, Пишу следующий код:
public TMP_InputField inputText;
public Button SaveTextButton;
public TMP_Text textDisplay;
List<string> savingText = new List<string>();

private void Start()
{
Button btn = SaveTextButton.GetComponent<Button>();
btn.onClick.AddListener(SavingTextButton);
}
void SavingTextButton()
{
savingText.Add(inputText.text);
foreach (string i in savingText)
{
textDisplay.text += i + "\n";
}
}
Но при нажатии на кнопку происходит копирование и запись введенного текста ровно 3 раза, если в условии убрать оператор += и заменить его на просто =, то тогда записывается всё корректно, но при новом вводе старое значение строки заменяется на новое, а мне нужно чтобы сохранялось старое значение и при вводе нового текста добавлялся текст просто ниже и сохранялся, как это сделать в моей ситуации не могу понять,заранее спасибо за помощь!
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Alkos26Rus 13 июн 2022, 19:05

нужно очищать текст перед добавлением
Синтаксис:
Используется csharp
void SavingTextButton()
{
savingText.Add(inputText.text);

textDisplay.text = "";
foreach (string i in savingText)
{
textDisplay.text += i + "\n";
}
}
 
Аватара пользователя
Alkos26Rus
Адепт
 
Сообщения: 1640
Зарегистрирован: 26 ноя 2020, 17:52
Откуда: Москва

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 15 июн 2022, 13:13

Теперь добавляется по 2 копии строки за одно нажатие, до конца не решает это проблему
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 15 июн 2022, 13:14

Теперь сохраняет по 2 копии строки за одно нажатие, до конца не решило мою задачу
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 15 июн 2022, 13:25

Если написать условие:
void SavingTextButton()
{
textDisplay.text = "";
foreach (string i in savingText)
{
textDisplay.text += i + "\n";
}
if (textDisplay != null)
{
savingText.Add(inputText.text);
}
}
То тогда всё срабатывает, но при повторном нажатии добавляется и новая строка но вместе с ней ещё и старая что вводил до этого, может можно как то перед нажатием кнопки очищать данный список?
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение 1max1 15 июн 2022, 13:42

Код от Alkos26Rus однозначно правильный, проблема в тебе)
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 15 июн 2022, 13:50

Я не сомневаюсь в правильности кода, я говорю как это в итоге работает, проблема ни в ком, я никого не оскорблял
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение 1max1 15 июн 2022, 14:38

Так почему же работает не так как должно если код правильный? Может пора освоить новый метод Debug.Log?
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 15 июн 2022, 16:27

Нашёл и разобрался с ошибкой теперь работает правильно, спасибо за помощь! Тому кто помог,а обсудить и я могу кого угодно!
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57

Re: Как добавить новый элемент по нажатию на UI Button

Сообщение Simba1395 26 июн 2022, 10:36

Alkos26Rus писал(а):нужно очищать текст перед добавлением
Синтаксис:
Используется csharp
void SavingTextButton()
{
savingText.Add(inputText.text);

textDisplay.text = "";
foreach (string i in savingText)
{
textDisplay.text += i + "\n";
}
}
 

А не подскажите как можно ещё реализовать сохранение данных в данном списке, просто через PlayerPrefs, не выходит это сделать
Simba1395
UNец
 
Сообщения: 11
Зарегистрирован: 11 май 2022, 17:57



Вернуться в uGUI

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2