Necesita ayuda con el botón de retroactiva para volver a la vista web

Este es mi código:

package com.testappmobile; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient; public class testappmobileActivity extends Activity { final Activity activity = this; private WebView webview; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // Check if the key event was the BACK key and if there's history if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) { webview.goBack(); return true; } // If it wasn't the BACK key or there's no web page history, bubble up to the default // system behavior (probably exit the activity) return super.onKeyDown(keyCode, event); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.main); WebView webView = (WebView) findViewById(R.id.webview); webView.getSettings().setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setTitle("Loading..."); activity.setProgress(progress * 100); if(progress == 100) activity.setTitle(R.string.app_name); } }); webView.setWebViewClient(new WebViewClient() { @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // Handle the error } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webView.loadUrl("http://developer.android.com/index.html"); } } 

Ahora estoy teniendo problemas para obtener el botón de hardware atrás para trabajar. La aplicación carga bien como lo hace la página y todo lo demás, pero tan pronto como me golpeó el botón de teléfono de nuevo se bloquea, entonces las fuerzas de cerca. He buscado google durante las últimas 3 horas y sólo he encontrado respuestas vagas con muy poca información o enlaces rotos. Las instrucciones de Google chuparon también como soy un principiante y suponen que usted sabe una cierta cantidad.

¿Dónde debo colocar el código si está en el lugar equivocado?

¿Hay errores?

¡Aclamaciones!

2 Solutions collect form web for “Necesita ayuda con el botón de retroactiva para volver a la vista web”

Ha creado una referencia webView en el nivel de clase pero nunca lo ha inicializado por eso NullPointerException. He hecho un pequeño cambio en el método onCreate en su código, lo onCreate y hago los cambios necesarios;

 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().requestFeature(Window.FEATURE_PROGRESS); setContentView(R.layout.main); // Don't create another webview reference here, // just use the one you declared at class level. webView = (WebView) findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setTitle("Loading..."); activity.setProgress(progress * 100); if(progress == 100) activity.setTitle(R.string.app_name); } }); // rest of code same // ... // ... // ... } 

Espero que lo consigas. 🙂

Tiene dos referencias diferentes a WebView. Primero local en onCreate, que se pierde. Segundo miembro de webview que usas en onKeyDown, pero que es nulo todo el tiempo.

  • Abrir un archivo PDF local en WebView con Google Docs
  • Diseño de página de pago de Paypal roto en webview android
  • ¿Cómo cambiar el tamaño del contenido de una webview en android?
  • Cargar archivo html local en webview android
  • Android WebView parece ignorar la información de "vista gráfica" en las páginas web
  • Selección de texto de Webview no borrada
  • Soporte de lienzo HTML5 y vista Web de Android
  • Llame al método "shouldOverrideUrlLoading" en webview.goBack ()
  • Detener evento táctil de ser interceptado por ViewPager si hay evento táctil en la vista web
  • Flash en un WebView de Android - problema de capas
  • Android webview tiene borde blanco alrededor de él y cómo puedo deshacerme de él?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.