Страница 1 из 1

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

СообщениеДобавлено: 13 июн 2022, 18:23
Simba1395
Здравствуйте всем! Столкнулся со следующей проблемой, создаю что то наподобие примитивных заметок, для этого использую 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 раза, если в условии убрать оператор += и заменить его на просто =, то тогда записывается всё корректно, но при новом вводе старое значение строки заменяется на новое, а мне нужно чтобы сохранялось старое значение и при вводе нового текста добавлялся текст просто ниже и сохранялся, как это сделать в моей ситуации не могу понять,заранее спасибо за помощь!

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

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

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

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

СообщениеДобавлено: 15 июн 2022, 13:13
Simba1395
Теперь добавляется по 2 копии строки за одно нажатие, до конца не решает это проблему

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

СообщениеДобавлено: 15 июн 2022, 13:14
Simba1395
Теперь сохраняет по 2 копии строки за одно нажатие, до конца не решило мою задачу

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

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

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

СообщениеДобавлено: 15 июн 2022, 13:42
1max1
Код от Alkos26Rus однозначно правильный, проблема в тебе)

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

СообщениеДобавлено: 15 июн 2022, 13:50
Simba1395
Я не сомневаюсь в правильности кода, я говорю как это в итоге работает, проблема ни в ком, я никого не оскорблял

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

СообщениеДобавлено: 15 июн 2022, 14:38
1max1
Так почему же работает не так как должно если код правильный? Может пора освоить новый метод Debug.Log?

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

СообщениеДобавлено: 15 июн 2022, 16:27
Simba1395
Нашёл и разобрался с ошибкой теперь работает правильно, спасибо за помощь! Тому кто помог,а обсудить и я могу кого угодно!

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

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

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

А не подскажите как можно ещё реализовать сохранение данных в данном списке, просто через PlayerPrefs, не выходит это сделать

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

СообщениеДобавлено: 26 июн 2022, 18:50
1max1