【发布时间】:2014-03-26 21:01:01
【问题描述】:
我有一个 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。
标签: c# android xamarin textview