我使用Visual Studio。 在按下按钮一段时间后,我尝试在for循环中使用 i.ToString()更新TextView,但它始终显示 i 的最后一个值,我是android的新手,也许我想念一些东西。谁能解释我做错了什么?
namespace MyApp
{
[Activity(MainLauncher = true, NoHistory = true)]
public class MyActivity : Activity
{
public static TextView text1;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
SetContentView(Resource.Layout.MyActivity);
}
protected override void OnResume()
{
base.OnResume();
text1 = FindViewById<TextView>(Resource.Id.textView1);
Button btn = FindViewById<Button>(Resource.Id.button1);
btn.Click += delegate
{
for(int i=0; i<5; i++)
{
text1.Text = i.`ToString`();
Task.Delay(1000);
}
};
}
}
}
按下按钮后,TextView的值为4。
P.S。对不起我的英文
答案 0 :(得分:0)
您要么让您的委托异步,然后等待Task.Delay调用或使用计时器。使委托异步看起来像这样:
btn.Click += async delegate
{
for(int i=0; i<5; i++)
{
text1.Text = i.ToString();
await Task.Delay(1000);
}
};