我有一个TextView,它最初具有默认文本值,然后根据用户的操作,在单击按钮时需要更改TextView的文本。这似乎很简单,但我遇到了问题。
目前的情况是,当用户单击提交按钮触发更改文本时,新文本只会添加到原始TextView下面,而不是简单地更改文本值。就像添加了一个新的TextView一样。
以下是执行此操作的代码:
我也尝试了这种方式,但没有成功:
目前的情况是,当用户单击提交按钮触发更改文本时,新文本只会添加到原始TextView下面,而不是简单地更改文本值。就像添加了一个新的TextView一样。
以下是执行此操作的代码:
lblSlogan.Invalidate();
lblSlogan.SetText(currentSlogan.Slogan, TextView.BufferType.Normal);
我也尝试了这种方式,但没有成功:
lblSlogan.Invalidate();
lblSlogan.Text = currentSlogan.Slogan;
lblSlogan是一个TextView。我有什么遗漏吗?我也尝试过不使用invalidate(),但也没有改变任何内容。
谢谢。
-- 编辑 --
需要注意的是,我正在使用Xamarin的C#。这是我的按钮点击方法。这就是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 = "";
}
};