2015-04-23 44 views
0

我有下面的代码: -对象引用不设置到对象的实例,同时初始化的WebView Xamarin的Android

protected override void OnCreate(Bundle bundle) 
{ 
    base.OnCreate(bundle); 
    SetContentView(Resource.Layout.layoutInformation); 

    WebView Body = FindViewById<WebView>(Resource.Id.BodyContentWV);-- Error here 

    // Create your application here 
} 

layoutInformation.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:minWidth="25px" 
    android:minHeight="25px"> 

    <android.webkit.WebView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/BodyContentWV" /> 

</LinearLayout> 

我得到在初始化以下错误的WebView。任何人都可以指出任何Iam做错了什么?

System.NullReferenceException: Object reference not set to an instance of an object 
+0

什么是有WebView的布局的名称? –

+0

@ρяσѕρєяK其layoutInformation.xml – user3034944

+0

@ρяσѕρєяK任何帮助? – user3034944

回答

0

这里:

<android.webkit.WebView <<<< line 
    ... 
/> 

android.webkit引起问题,因为包是Android.Webkit而不是android.webkit

只需使用的WebView在XML中添加的WebView:

<WebView <<<< line 
    ... 
/> 
+0

我最初只用WebView iteself尝试过。它仍然会导致相同的问题 – user3034944

+0

@ user3034944:更改后尝试清理您的项目以重新生成R文件,也可以尝试它为'Android.Webkit.WebView' –

+0

我尝试了你所提到的一切 – user3034944

1

好吧,我会尽量表现出这对我的代码,在三点:

1)我有一个名为类:ExtendedWebViewClient。它看起来像这样:

public class ExtendedWebViewClient : WebViewClient 
{ 
    public override bool ShouldOverrideUrlLoading(WebView view, string url) 
    { 
     view.LoadUrl(url); 
     return true; 
    } 
} 

2)我有Activity名为SearchWebActivity。它有资源xml文件和.cs文件。

一)资源的XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:minWidth="25px" 
android:minHeight="25px"> 
<WebView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/SearchWeb_WebView" /> 

B)类的.cs文件SearchWebActivity:

public class SearchWebActivity: Activity 
{ 
    WebView _searchWeb_WebView; 
    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 

     SetContentView(Resource.Layout.SearchWebActivity); 
     _searchWeb_WebView= FindViewById<WebView>(Resource.Id.SearchWeb_WebView); 

     setWebView(); 
    } 

    private void setWebView() 
    { 
     _searchWeb_WebView.Settings.LoadWithOverviewMode = true; 
     _searchWeb_WebView.Settings.UseWideViewPort = true; 
     _searchWeb_WebView.Settings.BuiltInZoomControls = true; 
     _searchWeb_WebView.Settings.JavaScriptEnabled = true; 
     _searchWeb_WebView.ScrollbarFadingEnabled = false; 
     _searchWeb_WebView.SetInitialScale(1); 
     _searchWeb_WebView.SetWebViewClient(new ExtendedWebViewClient()); 

     _searchWeb_WebView.LoadUrl("www.google.com"); 
    } 
} 

希望这将有助于。

相关问题