我有一個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