FindViewById возвращает ноль после StartActivity - PullRequest
0 голосов
/ 13 декабря 2018

Я пишу приложение для Android с Xamarin.У меня есть начальная активность, которая показывает стартовый экран и инициализирует приложение.Когда приложение инициализируется, я заканчиваю действие и начинаю следующее.Вот метод 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";
    }

Если я прокомментирую строку # 1 из этого метода FindViewById, вернем ноль.Я полагаю, что инициализация пользовательского интерфейса для MainActivity занимает некоторое время, но для меня это довольно странно, поскольку я предполагал, что элементы пользовательского интерфейса должны быть уже инициализированы после вызова SetContentView.Может быть, у кого-нибудь есть идеи, как решить эту проблему?

...