StartActivity之后,FindViewById返回null

时间:2018-12-13 08:18:57

标签: c# android xamarin findviewbyid

我用Xamarin编写了一个Android应用程序。我有一个启动活动,显示启动屏幕并初始化应用程序。初始化应用程序后,我完成了活动并开始下一个活动。这是方法StartActivity.OnCreate

        protected override async void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.StartScreen);

            // initializing app
            string status = await DownloadSomeString();                 
            Finish();

            // starting a main activity after initialization
            var intent = new Intent(this, typeof(MainActivity));
            StartActivity(intent);
        }

这是方法MainActivity.OnCreate

    protected override async void OnCreate(Bundle savedInstanceState)
    {            
        base.OnCreate(savedInstanceState);
        SetContentView(Resource.Layout.MainActivity);                

        await Task.Delay(3000); // #1 
        // if the prevoius line is commented the textview is null
        var textView = FindViewById<TextView>(Resource.Id.Text);
        textView.Text = "Some text";
    }

如果我从此方法FindViewById注释第1行,则返回null。我想为MainActivity初始化UI会花费一些时间,但是对我来说这很奇怪,因为我认为UI元素应该在调用SetContentView之后已经初始化。也许有人知道如何解决这个问题?

0 个答案:

没有答案