У меня есть TextView, который начинается с текстового значения по умолчанию, а затем на основе того, что делает пользователь, что текст TextView должен меняться в коде при нажатии кнопки. Кажется довольно простым, но у меня проблемы.Динамическое изменение текста TextView
В настоящее время происходит то, что пользователь нажимает кнопку отправки, которая вызывает изменение текста, новый текст просто добавляется на экран под исходным TextView вместо простого изменения текстового значения. Это похоже на добавление нового TextView.
Вот код, который делает это:
lblSlogan.Invalidate();
lblSlogan.SetText(currentSlogan.Slogan, TextView.BufferType.Normal);
Я также попытался это так, не повезло:
lblSlogan.Invalidate();
lblSlogan.Text = currentSlogan.Slogan;
lblSlogan является TextView. Я что-то упускаю? Я также пробовал его без invalidate(), но это тоже ничего не меняло.
Спасибо.
- редактировать -
Важно отметить, что я использую C# с Xamarin. Не Java. Вот мой метод нажатия кнопки. Здесь происходит изменение TextView.
btnOk.Click += delegate(object sender, EventArgs e)
{
if (answerBox.Text.ToLower() == currentSlogan.Company.ToLower())
{
// correct answer
currentUserScore += currentSlogan.Points;
currentSlogan.Answered = true;
DatabaseBuffer.MarkSloganAnsweredAndUpdateScore(currentSlogan, currentUserScore);
currentSlogan = DatabaseBuffer.GetNextUnansweredSlogan(currentSlogan.ID);
}
if (currentUserScore >= pointsToPass)
{
// user has beaten level
}
else
{
lblSlogan.SetText(currentSlogan.Slogan, TextView.BufferType.Normal);
answerBox.Text = "";
}
};
Не нужно вызывать invalidate. – hakanostrom