TextView.文本更改后不会在屏幕上进行视觉更新

本文关键字:屏幕 更新 视觉 文本 TextView | 更新日期: 2023-09-27 18:16:12

public void displayTimeOnScreen()
    {
        _timer = new System.Timers.Timer();
        _timer.Interval = 1000;
        _timer.Elapsed += Timer_Elapsed;
        _timer.Enabled = true;
        FindViewById<TextView>(Resource.Id.textViewDay).Text = "Test";//This works
    }
public void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        TextView timeTextView, dateTextView, dayTextView;
        LinearLayout screen = FindViewById<LinearLayout>(Resource.Id.box);
        bool portrate = screen.Height > screen.Width;
        timeTextView = FindViewById<TextView>(Resource.Id.textViewTime);
        dateTextView = FindViewById<TextView>(Resource.Id.textViewDate);
        dayTextView = FindViewById<TextView>(Resource.Id.textViewDay);
        string[] timeData = { "stuff", "things", "test" };
        timeTextView.Text = timeData[0];
        dateTextView.Text = timeData[1];
        dayTextView.Text = timeData[2];
        Log.Info("Information", timeTextView.Text);//This will tell me that timeTextView.Text has actually been updated, it just isn't showing on the screen
    }
}

所以我一直在尝试做一个简单的程序,显示时间在android设备上。我使用Timers对象来运行应该更新时间的代码。然而,尽管Log告诉我代码正在运行,并且TextView的文本值正在更新,但这并没有显示在android设备的屏幕上。然而,displayTimeOnScreen()方法确实有效。

有谁知道是什么问题吗?

TextView.文本更改后不会在屏幕上进行视觉更新

您正在寻找的方法是textView.setText()

您需要使用setText()来显示TextView中的文本。

timeTextView.setText(timeData[0]);
dateTextView.setText(timeData[1]);
dayTextView.setText(timeData[2]);