Im новый здесь, чтобы вы все знали.Webview не вернется (Xamarin - Android C#)
Я начал создавать приложение для веб-браузера для андроида, и я хотел разрешить пользователю вернуться на предыдущую страницу вместо того, чтобы alwasy выйти из приложения.
Я получаю эту ошибку во время выполнения, когда запускаю приложение, и нажимаю значок назад.
"System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта"
Its для этого блока кода:
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.Back && web_view.CanGoBack()) // <-- this is the line which brings up the error
{
web_view.GoBack();
return true;
}
return base.OnKeyDown(keyCode, e);
}
Я подозреваю, его что-то делать с WebView.
Может ли кто-нибудь дать мне несколько советов о том, как действовать?
Ниже мой исходный код моего маленького проекта:
using System;
using Android.App;
using Android.OS;
using Android.Webkit;
using Android.Views;
namespace MyWebApp
{
[Activity(Label = "MyWebApp", MainLauncher = true, Icon = "@drawable/icon", Theme = "@android:style/Theme.NoTitleBar")]
public class MainActivity : Activity
{
WebView web_view; //<-- I think this might be the issue?
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
DisplayWebpage(web_view, "http.google.com");
}
private WebView DisplayWebpage(WebView webview, String url)
{
webview = FindViewById<WebView>(Resource.Id.webView);
webview.Settings.JavaScriptEnabled = true;
webview.LoadUrl(url);
webview.SetWebViewClient(new WebView_Client());
return webview;
}
public class WebView_Client : WebViewClient
{
public override bool ShouldOverrideUrlLoading(WebView view, string url)
{
view.LoadUrl(url);
return true;
}
}
// BACK FUNCTIONALITY
public override bool OnKeyDown(Keycode keyCode, KeyEvent e)
{
if (keyCode == Keycode.Back && web_view.CanGoBack())
{
web_view.GoBack();
return true;
}
return base.OnKeyDown(keyCode, e);
}
}
}
Это сработало! Спасибо всем. – Duggan