簡體   English   中英

nativeOnDraw失敗-Xamarin Android Webview

[英]nativeOnDraw failed - Xamarin Android Webview

我正在為Android使用xamarin,我已經研究了這個問題,但似乎沒有任何效果。

我試圖讓一個按鈕的webview,但每當我單擊按鈕時,它總是說。

nativeOnDraw失敗; 清除為背景色。

我將在此處包括布局圖像和代碼。 在此處輸入圖片說明

主要活動

    namespace Application
{
    [Activity(Label = "Application", MainLauncher = true, Icon = "@drawable/icon", Theme = "@android:style/Theme.NoTitleBar")]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            WebPage webPage = new WebPage();

            Button btn_MySchedule = FindViewById<Button>(Resource.Id.btnSchedule);
            Button btn_MyCareer = FindViewById<Button>(Resource.Id.btnCareer);
            Button btn_MySocial = FindViewById<Button>(Resource.Id.btnSocial);
            Button btn_Feedback = FindViewById<Button>(Resource.Id.btnFeedback);
            Button btn_MyDetails = FindViewById<Button>(Resource.Id.btnDetails);

            btn_MySchedule.Click += delegate
            {
                webPage.isSchedule = true;
                //wPage.SetUrl("https://www.google.com");
                StartActivity(typeof(WebPage));
            };
        }
    }
}

網頁

namespace Application
{
    [Activity(Label = "WebPage", Theme = "@android:style/Theme.NoTitleBar")]
    public class WebPage : Activity
    {
        public bool isSchedule;

        private WebView _webView;
        private string _url;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.WebPage);

            _webView = FindViewById<WebView>(Resource.Id.webView);

            new DisplayWebPage(_webView, GetUrl());
        }

        public string GetUrl()
        {
            return _url;
        }

        public void SetUrl(string sUrl)
        {
            _url = sUrl;
        }

        private void ButtonCLicked()
        {
            if (isSchedule == true)
            {
                SetUrl("https://www.google.com");
                Toast.MakeText(this, "isSchedule is true", ToastLength.Short).Show();
            }
        }
    }
}

我發現了問題。 這是由於我通過GetUrl()方法調用了一個空字符串。 我使用的解決方案是:

[Export("MyScheduleClicked")]
    public void MyScheduleClicked(View v)
    {
        var activity2 = new Intent(this, typeof(WebPage));

        activity2.PutExtra("MyURL", "https://www.google.com");

        StartActivity(activity2);
    }   

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM