デフォルトのテキスト値で始まる TextView があり、ユーザーの操作に基づいて、ボタンがクリックされたときに TextView のテキストをコードで変更する必要があります。十分に単純に思えますが、問題が発生しています。
現在、ユーザーがテキストの変更をトリガーする送信ボタンをクリックすると、単にテキスト値を変更するのではなく、新しいテキストが元の TextView の下の画面に追加されます。あたかも新しい TextView を追加しているかのようです。
これを行うコードは次のとおりです。
lblSlogan.Invalidate();
lblSlogan.SetText(currentSlogan.Slogan, TextView.BufferType.Normal);
私もこの方法で試してみましたが、運が悪かったです:
lblSlogan.Invalidate();
lblSlogan.Text = currentSlogan.Slogan;
lblSlogan は TextView です。何か不足していますか?私もinvalidate()なしで試してみましたが、それでも何も変わりませんでした。
ありがとう。
- 編集 -
Xamarin で C# を使用していることに注意してください。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 = "";
}
};