[android]xamarin 更新 TextView 在一个循环后 dellay

标签: Android textview C#
发布时间: 2017/3/4 4:58:47
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我使用 Visual Studio。 我试图更新 TextViewi.ToString()在 for 循环一段时间后 timebutton 被按下,但它始终显示的最后一个值的,我是新来 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);
                }
            };
        }
    }
}

我按后 button 的值 TextView 是 4。

P.S.对不起我的英语

解决方法 1:

你或者是想要使你委托的异步,然后等待 Task.Delay 调用或使用计时器。使委托异步会像这样︰

        btn.Click += async delegate
        {
            for(int i=0; i<5; i++)
            {
                text1.Text = i.ToString();
                await Task.Delay(1000);
            }
        };
官方微信
官方QQ群
31647020